[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