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

Raspunde prin e-mail lui