Domanda

Sto usando WaitPid come dato

waitpid (Childpid, & Status, Wnohang);

Questo viene utilizzato in un programma all'interno di un ciclo infinito che biforca quando necessario e il genitore attende che il processo figlio torni. Ma recentemente mi sono imbattuto in un problema in cui nel programma esce dopo averlo stampato al CERR ..

Waitpid: nessun processo per bambini

Questo è sempre l'ultimo registro del programma prima che si blocchi/esca. So che non è stato segfault o altro perché ho scritto una funzione di traceback che stampa gli ultimi 10 indirizzi a cui il programma ha accettato. Quindi significa che il programma è uscito dal ciclo dopo aver scoperto che non esiste un processo per bambini? O c'è qualcosa di sinistro al lavoro qui?

È stato utile?

Soluzione

Immagino che ciò che sta accadendo qui sia che la chiamata del sistema fork non riesce a non perdere la mancanza di voci disponibili nella tabella di processo. Puoi fare un perror sull'output della forcella. Penso che dovrebbe essere risorsa_temporary_unavalabilible.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top