NoneInt execv(const char * путь, char *const argv[]); Как и все функции exec, execv заменяет образ вызывающего процесса новым образом процесса. Это приводит к запуску новой программы с идентификатором вызывающего процесса. Аргументы командной строки передаются функции как массив (вектор) указателей.
1 ответ

Семафор блокирует детей

У меня проблема, я хотел бы сделать разветвление, например, разветвление из 20 процессов, созданное этим разветвлением, не должно ничего делать, пока не будет создан последний, и я хочу сделать это с семафором, как я могу это реализовать? for (i=0; …
01 дек '17 в 13:59
0 ответов

Найти реализацию execv() из ядра Linux 3.2

Как найти реализацию execv() (включая ее путь) и где она определена в ядре linux 3.2? Я пытаюсь найти его реализацию и написать код перенаправления в этом файле, который перенаправляет на мой системный вызов.
04 май '14 в 12:56
1 ответ

Вызов execv после создания потока

Я очень плохо знаком с потоками, процессами, execv и т. Д. Я исследовал и обнаружил, что когда вы выполняете execv, он занимает пространство вызывающего процесса. Мне интересно, что происходит, когда вы создаете поток в main, а затем вызываете execv…
28 окт '16 в 01:15
0 ответов

Можно ли захватить стандартный вывод из execv в файл?

Я использую каналы для генерации дочернего процесса, который читает часть из файла и отправляет ее через канал, чтобы родительский процесс мог прочитать ее, выполнить программу extern и перенаправить стандартный вывод в файл. Проблема в том, что ста…
17 май '15 в 22:25
1 ответ

Как запустить процесс Linux сразу после системного вызова execv

Процесс (Android zygote) разветвляется из процесса инициализации, затем вызывается execv для загрузки реального исполняемого файла (/system/bin/app_process). Как я проверяю из отметки времени журнала, между разветвлением и "возвратом системного вызо…
25 май '18 в 02:02
1 ответ

Передать указатель на целое число при вызове execv в C

Я пишу рудиментарную программу оболочки на C, которая использует родительский процесс для обработки событий оболочки и fork() для создания дочерних процессов, которые вызывают execv для другого исполняемого файла (также C). Я пытаюсь сохранить счетч…
29 сен '18 в 14:51
2 ответа

Перенаправление вывода execvp в файл на C

Я не знаю, что я делаю неправильно... но вот фрагмент кода, который выполняется: if (fork() == 0) { // child int fd = open(fileName, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); dup2(fd, 1); // make stdout go to file execvp("ls","ls"); close(fd); exit(0); …
30 янв '12 в 20:15
2 ответа

Как я могу удержать execv от уничтожения моей программы?

Мое задание - написать простую оболочку Linux. Я на внешних командах. Нам нужно использовать execv. for (int i = 0; i < count; i++){ char path[1024]; strcpy(path, PATHS[i]); // PATHS is an array of cstrings, the paths in $PATH strcat(path, "/"); …
30 янв '14 в 09:12
1 ответ

ANSI C - выполнить процесс, подождать, удалить файл

Я пытаюсь выполнить LP для печати документа PDF и жду его завершения. После того, как он существует, я пытаюсь удалить файл с помощью unlink(); Однако ожидание заканчивается еще до того, как execv выполнит LP. Я не совсем уверен, как с этим справить…
31 окт '11 в 11:39
4 ответа

Вопрос об execv и процессе семейных отношений

После того, как процесс разветвляется, и разветвленный сын вызывает execv, результат все еще остается сыном отца?
20 авг '10 в 02:04
3 ответа

Execv заменяет текущий процесс, как это?

Если бы в моем коде я должен был вызвать execv, а затем у меня было несколько строк кода после вызова execv, будут ли выполнены эти строки или они не будут выполнены, поскольку все, что было запущено execv, заменяет текущий процесс?
27 апр '11 в 04:28
2 ответа

Как прочитать код возврата от дочернего процесса

Я использую fork и execv для выполнения дочернего процесса. В родительской программе у меня есть это: int status; wait(&status); cout << "return code = " << status << endl; Будет ли это ожидание завершения дочернего процесса и …
27 апр '11 в 05:51
0 ответов

Обрабатывать execv с помощью gdb

Я присоединяю GDB к процессу, который использовал execv заменить текущее изображение. К сожалению, кажется, что это сбивает с толку GDB, так как, когда процесс в конечном итоге std::terminates, все, что я получаю, это адреса без символов. Попытка за…
23 авг '16 в 10:03
2 ответа

Как заставить GDB следовать execv? Не работает, несмотря на "follow-exec-mode"

Я написал две простые программы: int main(int ac, char **argv ) { execv( "/home/me/Desktop/execvtest2", argv ); } а также int main(int ac, char **argv ) { execv( "/home/me/Desktop/execvtest1", argv ); } Я скомпилировал их с помощью gcc -g для соотве…
20 май '12 в 06:15
1 ответ

Указатель теряет свое значение + предупреждение о компиляции execv

Надеюсь, я не пропустил подобный вопрос. Я пытаюсь написать собственную мини-оболочку, используя примитивные функции языка Си. Я получил что-то, что должно работать, но у меня есть указатель, который делает все ошибки. мой adrCmd указатель должен по…
31 окт '14 в 17:26
6 ответов

Использование execv (язык C) для запуска команд из командной строки linux

Единственная часть, в которой я до сих пор путаюсь, - это как настроить execv с первым параметром в качестве текущего рабочего каталога. Я пробовал оба "." и "~", ни один из них не выполняет ничего на экране; то же самое для "/." и "/ ​​~". Я запута…
25 сен '12 в 03:30
1 ответ

Чтение из stdin после execl() bash возвращает eio(ошибка ввода / вывода)

Следующий код может действовать, как ожидается, если выполняется оболочкой. Но если я установлю эту программу как оболочку пользователя и ssh на хост, чтобы выполнить эту программу как оболочку, read(0, &buf123, 1); вернет EIO(ошибка ввода / выв…
16 янв '16 в 07:22
1 ответ

Не могу запустить execv

Я пытался запустить команду с помощью exevp следующим образом: char *args[11]; args[0] = (char*)lgulppath.c_str(); args[1] = (char*)"-i"; args[2] = (char*)sniffer_interface.c_str(); args[3] = (char*)"-r"; args[4] = (char*)pcapfileLimit.c_str(); args…
30 окт '12 в 14:37
2 ответа

Перезапуск скрипта Python внутри скрипта с той же версией Python

Я запускаю программу на сервере на сервере, и в моей учетной записи на сервере у меня установлена ​​версия Python в файле.bashrc следующим образом: alias python="python2.7" У меня есть сценарий Python, который я хотел бы иметь возможность перезагруз…
21 фев '17 в 00:25
0 ответов

fork()/execv() зависает на узлах MPI (C++)

Я пишу C++ программу с MPI, которая будет запускать внешние программы на узлах MPI. Для этого я использую fork()/execv(). Проблема в том, что процесс запускается нормально, но затем останавливается, если используется большое количество процессоров (…
21 июл '15 в 15:31