openpty() problem
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Neděle Duben 9 20:55:21 CEST 2006
On Thu, 6 Apr 2006, Dalibor Toman wrote:
> Btw: Dival jsem se do zdrojaku openpty() a spol a zda se mi, ze z
> hlediska osetreni chyb to neni uplne dobre napsano - nejak mi tam
> chybi nastavovani errno v nekterych pripadech (kdyz getpt() zjisti, ze
> jsou nejake problemy s /dev/pts atd).
Pak tam zůstane právě chyba, co nastala např. uvnitř toho getpt().
Jestli je to smysluplné, nebo ne, na to lze mít různé názory.
> Ale mozna mi (doufam) neco uniklo, jinak by to reportovane 'No such
> fil or directory' mohlo byt ponekud zavadejici...
Zrovna ENOENT je dokumentovaný stav znamenající, že nejsou žádné volné
pty. Má to svou vnitřní BSDčkovou logiku vyplývající z toho, že
__bsd_getpt() projíždí všechna možná jména zařízení, a když narazí na
neexistující jméno, tak skončí.
V našem případě to pravděpodobně znamená, že __posix_openpt() z nějakého
neznámého důvodu selhalo, tak to zkusilo __bsd_getpt(), které selhalo
taky. Ale v errno může být jen jedna chyba.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux