codsursa Posted October 24, 2012 Report Share Posted October 24, 2012 Am si eu o problema de rezolvat insa nu ma prea pricep , daca m-ar ajuta cineva as fi foarte recunoscator . Cateva idei acolo macar .Proiectati si implementati urmatorul protocol de comunicare intre procese:comunicarea se face prin executia de comenzi citite de la tastatura in procesul tata si executate in procesele fiucomenzile sunt siruri de caractere delimitate de new lineraspunsurile sunt siruri de octeti prefixate de lungimea raspunsuluiprotocolul minimal cuprinde comenzile:login: username (a carei existenta este validata prin utilizarea unui fisier de configurare)grep pattern nume_fisier Rezultatul obtinut in urma executiei acestei comenzi este sumarizat de procesul(procesele fiu), in observatii de tipul: Nr de linii relevante este X. Acest rezultat va fi afisat de procesul tata.lsquitComunicarea intre procese se va face pe baza unui mecanism de comunicare cunoscut. Quote Link to comment Share on other sites More sharing options...
shaggi Posted October 24, 2012 Report Share Posted October 24, 2012 asta e comunicarea intre un shell(proces fiu) si un terminal(proces tata).Trebuie neaparat in C/C++ ? Quote Link to comment Share on other sites More sharing options...
Xander Posted October 24, 2012 Report Share Posted October 24, 2012 The GNU C Programming Tutorial exista mai multe metode dar prin pipes e destul de usor Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 shaggi : da trebuie neaparat in C . Mersi Xander pt tutorial. Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 Mai are cineva vre-o idee ? Quote Link to comment Share on other sites More sharing options...
vexyro Posted October 24, 2012 Report Share Posted October 24, 2012 (edited) Deci ai dou? variante simple:1. pipe-uri2. fork?tii cu vreuna din ele sau tu de fapt vrei rezolvarea?L.E.Ce fel de comenzi sunt acelea? Comenzi Unix sau comenzi predefinite de tine de genul: sari_în_sus, d?_mi_o_acadea? Edited October 24, 2012 by vexyro Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 nu prea ma pricep la programare pe linux . Daca poti sa imi dai vreo rezolvare pe fork . Iti raman dator o vesnicie . Macar login si grep . Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 comenzi unix Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 (edited) int main (){ pid_t pid; int status; pid = fork (); printf ("se executa ..\n"); if (pid < 0) { perror ("eroare la fork"); exit (1); } else if (pid) {if (wait (&status) < 0) { perror ("wait()"); } printf ("Comanda a fost executata.\n"); exit (0); } else { execlp ("ls", /* comanda de executat (se va cauta in direc$ "ls", "-a", "-l", NULL); printf ("Eroare de executie!\n"); exit (1); }}pt comanda ls ar fi bun codu asta ..de rulat ruleaza si imi afiseaza fisierele Edited October 25, 2012 by MrRip Quote Link to comment Share on other sites More sharing options...
vexyro Posted October 24, 2012 Report Share Posted October 24, 2012 (edited) 1. NU mai face double posting [1]2. Asta este tem? iar tu ne ceri de fapt s? ?i-o rezolv?m. Problema în sine nu e grea. E doar muncitoreasc? ?i nu ?tiu câ?i au r?bdare s? ?i-o rezolve, ori s? ?i-o înceap?.3. Tema este aici [2] iar exemplu sunt multe la fiecare laborator/curs.4. Încearc? mai întâi varianta cu pipe-uri anonime ca s? în?elegi cum st? treaba cu IPC [3] apoi treci la pipe-uri cu nume, cum este explicat aici [4]5. Poti s? arunci ?i un ochi peste fork() [5]6. S-a mai discutat despre subiectul ?sta pe aici [6].[1]: Internet forum - Wikipedia, the free encyclopedia[2]: Cursul&Laboratorul -[3]: Inter-process communication - Wikipedia, the free encyclopedia[4]: http://profs.info.uaic.ro/~adria/teach/courses/net/files/NetEx/S3/who_wc.c[5]: Fork (operating system) - Wikipedia, the free encyclopedia[6]: https://rstcenter.com/forum/27077-programare-linux.rst Edited October 24, 2012 by vexyro Quote Link to comment Share on other sites More sharing options...
codsursa Posted October 24, 2012 Author Report Share Posted October 24, 2012 mersi mult Quote Link to comment Share on other sites More sharing options...