Articles of popen

popen для передачи двоичных данных между процессами

Я сталкиваюсь с проблемой передачи двоичных данных между процессами. Моя программа открывает канал для ffmpeg, используя popen () и пытается захватить вывод, а затем передать его как HTTP-сервер. Я делаю что-то вроде этого ffmpeg -i “input_video.avi” -ab 56 -ar 44100 -b 1500000 -r 25 -s 800×600 -f flv – (Output filename “-” переводит вывод в […]

Захват стандартного вывода tshark с помощью popen в C

Я пытаюсь захватить стандартный вывод из tshark через программу в C. Для этого я использую вызов popen () для открытия процесса tshark и чтения из возвращаемого streamа FILE. Пример кода: #include #include int main() { FILE* pipe_fd = popen(“tshark -i eth0 -R icmp -2 -T fields -e icmp.checksum -e icmp.seq”, “r”); //FILE* pipe_fd = popen(“lsof”, […]

C Язык: popen () с fread ()?

Я застрял на этом несколько дней, и это становится очень неприятно. Я использую popen() для вызова процесса командной строки и получения его вывода и сохранения его в строке C. Я использовал fgets() но кажется, что ломается после новой строки, поэтому я использую fread() . Единственная проблема заключается в том, что возвращаемая строка C иногда перепуталась. […]

Сохранение двойных кавычек при передаче строки в папку C

У меня возникла дилемма, когда я пытаюсь передать строку через popen в C, но она поддерживает двойные кавычки в строке. Строка читается следующим образом: ssh %s@%s grep -c \”%s\” %s%s Мне нужно запустить эту команду, чтобы она загоралась из журнала в удаленной системе и возвращает счетчик для него. Я передаю разные аргументы через строку, поэтому […]

Как передать несколько команд, используя popen в C?

Я пытаюсь построить графики, используя GNUPLOT который является интерфейсом командной строки. Но мне нужно интегрировать его в c-программу, так что если программа будет выполнена, график будет нанесен на график. Это можно сделать, используя команду popen . Я сделал код, где я делаю popen(“gnuplot”,”r”) поэтому теперь, когда я запускаю программу, запускается gnuplot. Но мне нужно отправить […]

Что не так с этим примером ?popen / select?

UPDATE: я обновил код и описание проблемы, чтобы отразить мои изменения. Теперь я знаю, что я пытаюсь выполнить операцию Socket на несете. или что мой fd_set недействителен, поскольку: select возвращает -1 и WSAGetLastError() возвращает 10038. Но я не могу понять, что это такое. Платформа – это Windows. Я еще не опубликовал часть WSAStartup . int […]

Использование popen () для вызова команды оболочки?

При запуске следующего кода через xcode я получаю непоследовательное поведение. Иногда он корректно печатает версию git, в других случаях она ничего не печатает. Код возврата из команды оболочки всегда равен 0. Любые идеи о том, почему это может быть? Что я делаю неправильно? #define BUFFER_SIZE 256 int main (int argc, const char * argv[]) { […]

fgets возвращающая ошибка для FILE, возвращенная popen

Я пытаюсь выполнить командную строку из моего кода на C, но когда я перейду к функции fgets (), я получил ошибку NULL. void executeCommand(char* cmd, char* output) { FILE *fcommand; char command_result[1000]; fcommand = popen(cmd, “r”); if (fcommand == NULL) { printf(“Fail: %s\n”, cmd); } else { if (fgets(command_result, (sizeof(command_result)-1), fcommand) == NULL) printf(“Error !”); […]

запуск нескольких команд с использованием popen в c

Я создаю программу, использующую C, которая работает в среде linux, которая должна запускать несколько команд, подобных этому sudo -s Ls PWD (предположим, что команды под sudo -s – это команды, которые должны быть суперпользователями, чтобы иметь возможность запускать их) Теперь мне нужно сделать все выходные данные этих команд для дальнейшей обработки. Вот код int executeCommand(char […]

Использование popen () для открытия программы в командной строке?

Можно ли открыть программу, используя другую программу? Например: я хочу сделать приложение командной строки на C, которое предложит пользователю ввести имя программы (скажем, Microsoft Word.app), и эта программа запустится. Я бы сделал что-то вроде этого: #include #include int main (int argc, const char * argv[]) { char programName[1000]; printf(“Type in the name of the program […]