|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2004
Messaggi: 210
|
[C-LINUX-UNIX] cosa fa sto codice?
Codice:
#include <stdio.h> #include <unistd.h> int i = 0; int main(int argc, char ** argv){ printf("%d %d\n", getpid(), ++i); execl(argv[0], argv[0], 0); printf("Fine\n"); } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2004
Città: Bologna
Messaggi: 50
|
execl esegue il file arg[0] che è il nome del programma.
Hai la CPU al 100% perchè si richiama all'infinito. man 3 execl
__________________
And the salad is frightful! I have an important message to deliver to all the cute people all over the world. If you're out there and you're cute, maybe you're beautiful. I just want to tell you something: there's more of us ugly mother-fuckers than you are, hey-y, so watch out. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
comunque stampare dovrebbe stampare.
il punto è che non viene stampato immediatamente a schermo quello che viene scritto dalla printf. credo (non ne sono sicurissimo) che il contenuto del buffer di stdout venga messo a schermo solo se incontra un terminatore o se si riempie. ti conviene utilizzare fprintf utilizzando come canale stderr che non è bufferizzato. ciao! |
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
oppure può esplicitare il flush del buffer con fflush
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:41.