Привет! Есть проблема не работает exec при вызове a2ps. Строка генерируется верно,непосредственно в консоли она работает. В чем дело? И еще, может кто-то даст лучший совет? Использую, естественно, stl, а не самопальные поделки (я про string) //печать int CProtocol::Print(){ int rc = 0; //return code - в зависимости от того, как отработал exec list<string>::iterator s = strlist.begin(); while( s != strlist.end() ){ ProtocolFile<<*s<<endl; s++; } //тут будет сама печать - вызов a2ps string Program = "a2ps "; string PrinterTask[4];//массив строк задания для печати - заголовок, титул, кодировка, файл //Заголовок if( HeaderText != "" ){ PrinterTask[0] = "--header=\""+HeaderText+"\" "; } else { PrinterTask[0] = ""; }//if-else //Титул if( TitleType != ""){ PrinterTask[1] = TitleType+"=\""+TitleText+"\" "; } else { PrinterTask[1] = ""; } //Кодировка PrinterTask[2] = "--encoding="+Encoding+" "; //Сам файл PrinterTask[3] = ProtocolFileName; cout<<"имеем для печати: "<<endl; for(int i = 0; i<4; i++){ cout<<PrinterTask[i]; } cout<<endl; //Для работы с дочерним процессом pid_t child_pid; child_pid = fork(); if( child_pid == -1 ){ rc = -1; } else { if(child_pid == 0){ cout<<"Должна пойти печать"<<endl; //Запускаем печать rc = execlp( "a2ps ", PrinterTask[0].c_str(), PrinterTask[1].c_str(), PrinterTask[2].c_str(), PrinterTask[3].c_str(), NULL ); }else{ //вернулись в родительский sleep(1); } rc = 0; } return rc; };