[so] [SO][Tema 2][Windows] Echo,bad file descriptor

Adrian Șendroiu molecula2788 at gmail.com
Sun Mar 25 18:52:40 EEST 2018


2018-03-24 17:49 GMT+02:00 Alexandru Militaru via so <so at cursuri.cs.pub.ro>:
> Salut,
>
> Am aceeași problemă. Oricum aș încerca să fac append, primesc ”bad file
> descriptor”. O problemă ciudată apare și când fac redirectare simplă (>)
> într-un fișier de mai multe ori la rând. Un "cat f.txt" dat după un "pwd >
> f.txt; ls > f.txt" va afisa output-ul comenzii ls + niște reminiscențe
> nesuprascrise din comanda pwd. Închid Handle-urile și deschid fișierele cu
> permisiuni, zic eu, bune. Care ar putea fi problema?
>
> Am încărcat tema pe gitlab. Userul meu este cmilitaru2501.
>
> Mulțumesc!

Salut,

Problema la append este că deschizi fișierul cu FILE_APPEND_DATA. Ceea
ce nu este greșit în sine, ci este mai degrabă o problemă de cygwin.
Cumva în procesul copil (ls), cygwin ajunge să creadă că stdout-ul
este deschis read-only, din cauza faptului că el se uită doar după
valorile FILE_READ_DATA și FILE_WRITE_DATA, nu și FILE_APPEND_DATA
[1]. Soluția din păcate este să renunți la modul append și să deschizi
fișierul cu GENERIC_WRITE (care implică și FILE_WRITE_DATA).

[1] https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/dtable.cc;h=9ebd45c063372e7d931a7c68895a574802a005d0;hb=HEAD#l381


More information about the so mailing list