Nu ai modificat cum trebuie. Eu am zis "cmd /C" (nu \C, argumentele toolurilor de windows se dau cu /) și să pui parametrul între ghilimele (nu apostroafe).
De asemenea, modul în care faci wait după process pare suspect. WaitForSingleObject se face pe un HANDLE, mai exact hProcess din structura PROCESS_INFORMATION. On Mon, 25 Mar 2019 at 22:10, Rares Folea <[email protected]> wrote: > > 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 <[email protected]> wrote: > > > > 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
