On Saturday 21 January 2006 16:23, Liviu Daia wrote: > Serghei Amelian scria la data de 21 Ianuarie 2006: > > On Saturday 21 January 2006 13:37, Liviu Daia wrote: > > [...] > > > > > Adevarat. In cazul popen(3) nu te poti baza decat pe un signal > > > handler. > > > > Oare nu pot sa fac signal(SIGPIPE, SIG_IGN), dupa care sa verific > > rezultatul dupa fiecare fwrite (sa abandonez functia daca > > errno==EPIPE)? > > Ba da, chiar asa se face, cu mentiunea ca verifici rezultatul cu > ferror(3).
Nu abandonez operatia de scriere doar la "broken pipe" ci la orice alta eroare. E suficient sa-mi dea fwrite() <= 0. Singurul lucru care il fac e sa scriu la stderr "Error writing to spooler: %s", strerror(errno) si vad ca e ok. > In felul asta nu poti sti exact cat din ultimul chunk pe > care l-ai trimis a ajuns cu succes la destinatie, asta e singurul > dezavantaj. In cazul meu nu conteaza cat s-a scris. Eu scriu un job la spooler, care poate fi "lp", "lpr", "kprinter --stdin", etc. Cea mai frecventa chestie e sa dai cancel la kprinter, care se soldeaza cu "broken pipe". > Salutari, > > Liviu Daia Multumesc pentru suport. -- Serghei. TOP POSTING SUX _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
