Странную штуку обнаружил: #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 в другом. Как это можно обьяснить? З.Ы. Я этот код взял из другой своей проги, так что он немного кривоват