Изменить , помимо фактического вопроса, я бы использовал
sudo netstat -tlpn
(показывает процессы, которые прослушивают порты TCP, но не разрешают порты / адреса)
Возможно, объедините его с небольшим количеством grep:
sudo netstat -tlpn | grep :7761
, чтобы найти, где прослушивается порт: 7761?
Вы можете использовать popen
.
С помощью popen вы получаете преимущество, заключающееся в том, что вы получаете выходные данные процесса асинхронно (вы сможете остановить обработку, если ответ находится в первой строке вывода, не дожидаясь завершения подпроцесса; просто pclose
и подпроцесс умрет с SIGPIPE
)
Образец прямо из Стандартной документации :
В следующем примере демонстрируется использованиеpopen()
и pclose()
для выполнения команды ls *
для получения списка файлов в текущем каталоге:
#include <stdio.h>
...
FILE *fp;
int status;
char path[PATH_MAX];
fp = popen("ls *", "r");
if (fp == NULL)
/* Handle error */;
while (fgets(path, PATH_MAX, fp) != NULL)
printf("%s", path);
status = pclose(fp);
if (status == -1) {
/* Error reported by pclose() */
...
} else {
/* Use macros described under wait() to inspect `status' in order
to determine success/failure of command executed by popen() */
...
}