nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: exec() e stdout ...

Von: Alexandros (niente_spam@chiedetemela.it) [Profil]
Datum: 05.05.2008 18:53
Message-ID: <7YGTj.71618$FR.290542@twister1.libero.it>
Newsgroup: it.comp.os.linux.development
Giovanni ha scritto:
> puoi usare la freopen().
>
> Per esempio:
>  if ((pid = fork()) == 0) {
>     /* Child */
>         freopen("mio_file.txt", "w", stderr);
>         execl("/bin/ls", "ls", "-l", NULL);
>  } else .......

Ciao Giovanni :)

Ho provato a fare quello che mi hai suggerito, e funziona... :)
(ho messo però stdout al posto di stderr)

Ma senza utilizzare la freopen(), come si fa ad ottenere lo stesso
risultato utilizzando la dup2() (con la open(), read() e write()) ?

Chiedo questo perchè nell'ultima "pagina" delle slide degli esercizietti
che sto facendo, c'è scritto: "suggerimento per l'esercizio X (questo
che ho postato): utilizzare la dup2()".

Ora, io con la dup2() c'ho anche provato... ma non ci riesco... :(

Ho fatto:

fd=open(argv[1], O_RDWR | O_CREAT);
newfd=dup2(STDOUT_FILENO, fd);
execl("/bin/ls", "ls", "-l", NULL);
[qui che ci metto ? una read seguita da una write su newfd?]

[ Auf dieses Posting antworten ]

Antworten