Странную штуку обнаружил: #include <unistd.h> #include <string.h> #include <string> using namespace std; int main(){ string arg = "fcuk"; string comm = "wget"; int pid=fork(); if (pid==0) { ///rewrite this bullshit char *argv[3]; //argv[0] = (char *)malloc(strlen(comm.c_str())); //strcpy(argv[0], comm.c_str()); argv[0] = (char *)malloc(strlen(arg.c_str())); strcpy(argv[0], arg.c_str()); argv[1]=NULL; execvp(comm.c_str(), argv); return 0; } else { return pid; } } Здесь не правильно используется execvp(доку не внимательно читал). По-идеи эта прога должна запускать wget с параметром fcuk. Интересно то что она выводит: [vova@mu crap]$ ./a.out fcuk: missing URL Usage: fcuk [OPTION]... [URL]... Try `fcuk --help' for more options. А если просто запустить wget, то: [vova@mu crap]$ wget wget: missing URL Usage: wget [OPTION]... [URL]... Try `wget --help' for more options. То-есть в одном выводе wget заменяется на fcuk в другом. Как это можно обьяснить? З.Ы. Я этот код взял из другой своей проги, так что он немного кривоват
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум execve (2005)
- Форум iconv: проблемы с переименованием. (2006)
- Форум Работа с функциями семейства exec (2017)
- Форум помогите немогу понять куда девается stdout (2009)
- Форум c и iconv - помогите разобраться (2008)
- Форум scanf(«%s»,char*) Что-то не так :( (2011)
- Форум Почему не старттует второй бинарник в execlp. (2004)
- Форум Проблемма с выделением памяти в модуле. (2005)
- Форум Правильно ли я организовал выделение памяти? (2014)
- Форум Задачка с массивом строк на Си (2008)