Странную штуку обнаружил:
#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)