|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
[C] Esercizio Sistemi Operativi: qualcuno sa dirmi se lo svolto correttamente?
Testo del progetto
Quote:
Codice:
#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/types.h> #include <sys/wait.h> void fail(char *message) { perror(message); exit(1); } int main() { int fd[2]; if (-1 == pipe(fd)) fail("pipe"); if (0 == fork()) { close(0); close(1); if (0 != open("/etc/passwd", O_RDONLY)) fail("open passwd"); if (1 != dup(fd[1])) fail("dup left"); close(fd[0]); close(fd[1]); execlp("cat", "cat", NULL); fail("exec cat"); } else { close(0); close(2); if (0 != dup(fd[0])) fail("dup right"); if (2 != open("/tmp/foo", O_WRONLY | O_APPEND | O_CREAT, 0600)) fail("open foo"); close(fd[0]); close(fd[1]); execlp("grep", "grep", "-H", "root", NULL); fail("exec grep"); } return 0; }
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Nessuno sa darmi una mano?
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Sep 2005
Città: pisa
Messaggi: 148
|
Il titolo scrivilo in Italiano.
Il codice indentalo come si deve, così è illegibile.
__________________
Trattative concluse positivamente con: Gomax,topolino2808,clickhere |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi usare la fork prima di chiamare la exec. La exec sostituisce l'immagine del processo in esecuzione con quella del processo chiamato, quindi è ovvio che l'esecuzione ti si fermi alla prima exec.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Ho già provato + volte, ma il codice nn me lo fa indentare, nel senso ke dopo averlo indentato, faccio salva e li continua a caricare e nn va + avanti, quindi nn mi resta ke annullare!!
X il titolo nn so cm fare x correggerlo...
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Scusami, ma potresti riscrivere il codice in modo corretto? Xkè non ho capito cosa intendi!!
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non posso fartelo io, devi imparare tu. Se non consoci il sistema fork-exec ti mancano cose molto importanti da studiare.
http://www.osix.net/modules/article/?id=641 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:54.