[so] [Tema2][Win] Eroare la citire POPEN

Rares Folea raresfolea97 at gmail.com
Mon Mar 25 22:10:35 EET 2019


In primul rand, multumesc pentru raspuns!

Am efectuat modificarile, dar acum intampin o problema referitoare la terminarea procesului copil in cazul POPEN cu argumentul “r”, iar in cazul type = “w”, se obtin date incorecte in fisier. Am epuizat toate metodele cunoscute de debugging.

In cazul POPEN “r”, in terminal mai apare (uneori) mesajul "The process tried to write to a nonexistent pipe.”



Multumesc pentru ajutor! 



> On 25 Mar 2019, at 20:30, Adrian Șendroiu <molecula2788 at gmail.com> wrote:
> 
> On Mon, 25 Mar 2019 at 16:55, Rares Folea via so <so at cursuri.cs.pub.ro> wrote:
>> 
>> Buna ziua!
>> 
>> Ma confrunt cu urmatoarea problema:
>> Apelul fread pe un fisier deschis cu POPEN nu reuseste sa citeasca niciodata.
>> 
>> In implementare, am creat pipe-ul, am marcat handlerul de citire din pipe(hRead) nemostenibil, am setat bInheritHandle = TRUE,
>> am creat procesul nou si am inchis in procesul parinte handlerul de scriere(hWrite). In acest moment, apelurile Fread din checker
>> nu reusesc sa citeasca.
>> 
>> De asemenea, FWRITE desi pare sa execute syscall-urile necesare, nu produce outputul bun.
>> 
>> Implementarea se regaseste pe gitlab, in directorul /l3-so-assignments/2-stdio/util/win.
>> 
>> 
>> 
>> Multumesc frumos!
> 
> Salut,
> 
> La prima vedere par să fie mai multe greșeli:
> - pe windows popen trebuie să execute cmd /C, nu sh -c. De asemenea,
> argumentul lui cmd /C trebuie pus între ghilimele
> - al doilea parametru al lui SetHandleInformation trebuie să fie
> HANDLE_FLAG_INHERIT, nu 0.



More information about the so mailing list