On Mon, 25 Mar 2019 at 16:55, Rares Folea via so <[email protected]> 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.
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui