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
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
- Alexandros (05.05.2008 20:38)
- Giovanni (06.05.2008 10:24)
