Articles of popen

Откройте программу cmd с полной функциональностью (i / o)

Я попробовал popen() и он хорошо работает для вывода с “r” переданным в качестве второго аргумента; Я знаю, что вы можете использовать “w” качестве режима записи, и это сработало для меня (программа была всего лишь одним scanf() ). Мой вопрос заключается в том, как использовать режим append ( “a” ). Вы можете писать и читать, […]

popen создает дополнительный sh-процесс

Я пытаюсь выполнить (разблокировать) команду с помощью popen, и я вижу, что есть еще один sh -c “my_command process” . Я хочу свести к минимуму количество процессов, чтобы можно было избавиться от него? ps выход: root@home% ps awux | grep my_command root 638 0.0 0.1 040 1424 ?? I 10:12PM 0:00.00 sh -c my_command /home/war […]

в чем разница между popen () и system () в C

Я хочу выполнить двоичный код в моем C-коде. С какими лучше работать? popen() или system() EDIT : Я пытался использовать system , но процесс, похоже, застревает в конце и не возвращается к моему коду. Любые предложения о том, что делать? Спасибо

C – труба без использования popen

как я могу преобразовать это: FILE *f; char in_buffer[80]; f=popen(“command”,”r”); fgets(in_buffer,sizeof(in_buffer),f) без использования popen() , но только pipe() или другой инструкции?

C – Получить PID процесса, открытого с помощью popen

У меня есть программа, написанная на C, которая открывает другую программу, используя popen. Я хотел бы получить pid этой программы или какой-то обработчик для нее, чтобы убить ее по истечении определенного срока или если она превышает некоторые пределы ram и stdout. Я думаю, что это нужно сделать с помощью ptrace, для которого нужен PID, который […]

Процесс убийства, созданный с помощью popen2

Я использую функцию popen2 (которая была рекомендована в другом месте в stackoverflow), чтобы запрограммировать процесс, который должен быть снова убит через некоторое время. popen2 возвращает PID, и я думал, что этот PID можно использовать для уничтожения процесса. Однако это не работает. Чтобы убить его, мне нужно увеличить возвращаемый PID, который я не понимаю (см. Код […]

c: уловить segfault в exec (), который был запущен в дочернем процессе

РЕДАКТИРОВАТЬ: Я пытаюсь написать простой smoketest, где проверяются все параметры и разумные параметры. Я использовал popen () для выполнения программы, которая должна быть протестирована. Использование этого подхода не работает, потому что, если процесс умирает с сигналом (SIGINT, SIGSEGV …), труба из popen () не сообщает мне, что происходит. Написание обработчика сигналов не помогло, поскольку popen […]

выполнение команд через сокеты с помощью popen ()

Может кто-нибудь дать мне руку, пытающуюся реализовать следующий сервер и клиент ?: Сервер: #include #include #include #include #include #include int main(void) { int sock = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serv_addr = { 0 }; serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; serv_addr.sin_port = htons(1234); bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)); listen(sock, 128); struct sockaddr_in cli_addr = […]

убить процесс, запущенный с помощью popen

После открытия трубы в процессе с помощью popen существует ли способ убить процесс, который был запущен? (Использование pclose – это не то, что я хочу, потому что это будет ждать завершения процесса, но мне нужно его убить.)