open a errno
Stepan Roh
stepan na srnet.cz
Úterý Srpen 28 14:18:28 CEST 2001
On Tue, 28 Aug 2001, Martin Kozusky wrote:
> Ahoj,
> hraju si z threadama (pthreads), uz mi vse co potrebuji chodi, ale stale mi
> vrta hlavou promena "errno" pri otevirani souboru - potrebuji aby si kazdy
> thread otevrel soubor (kazdy jiny). v main() to funguje normalne, ale v
> threadu ne.
>
> pouzivam na to fce open/write/close
>
> mam :
> int soubor;
> extern long int errno;
> soubor=open(cesta,O_WRONLY | O_CREAT | O_APPEND, 00644)
>
> v errno to vrati 4 (v <asm/errno.h> jsem nasel ze je to "Interupted System
> call"). nevite cim to muze byt?
>
> soubor se normalne vytvori, ale errno by prece melo byt 0 nebo ne?
errno se nastavuje jenom pri chybe, kdyz chyba nenastane, tak se v nem
zachova puvodni hodnota. Takze je treba errno vynulovat predem. Pozor na
to, ze kazde vlakno ma vlastni errno, takze je treba ho vynulovat v kazdem
vlakne zvlast. Viz man errno(3):
Valid error numbers are all non-zero; errno is never set
to zero by any library function.
S pozdravem,
Stepan Roh
Další informace o konferenci Linux