Привет! Есть проблема не работает 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;
};
Ответ на:
комментарий
от MKuznetsov
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум деление на ноль и сигфолт, без падения программы (2009)
- Форум 100% загрузка CPU при выводе в XTerm (2009)
- Форум создание дочерних процессов_ (2010)
- Форум Поругайте «стража» дочерних процессов (2015)
- Форум Как определить что отвалился клиент от сервера ? (C++/daemon) (2007)
- Форум pipe()+exec() (2019)
- Форум Потоки (2017)
- Форум REST через Boost.Asio (2023)
- Форум Boost.Asio и несколько async_write/async_read за раз (2023)
- Форум execl не принимает аргумент из pipe (версия 2, обновленная) (2015)