Мне нужно иметь дело с назначением, и я должен использовать файл FIFO для IPC.Проблемы с использованием fgets
Основная проблема заключается в том, что я застрял на части fget
. Я уже открываю файл, но когда я пытаюсь прочитать данные, хранящиеся на нем, программа просто перестает работать. Это действительно не висит, программа просто ничего не делает.
Я уверен, что это проблема с syscall fgets
, потому что я отлаживал, и проблема проявляется только тогда, когда я включаю строку fgets()
в код.
// ESCRITURA DENTRO DEL ARCHIVO FIFO QUE ABRIRA EJ2. // Creamos лос FIFOs, comprobando дие нет existen
mknod("fichero1", S_IFIFO|0777,0);
fp= fopen("fichero1", "w+"); //Abrimos el archivo fifo
if (fp==NULL){
printf("Fallo al abrir el archivo, no se encuentra");
exit(0);
}
fputs(msgrec, fp);
fclose(fp);
printf("El proceso P2 ha creado el archivo fichero1 y ha esctito el mensaje ");
fp = fopen("fichero1", "w+");
if (fgets(msgre, sizeof(msgrec), fp) == NULL){
printf("Fallo al leer el archivo");
exit(0);
}
printf("\n I´m here"); // DEBUGING LINE
//Here is how he code continues.
/*
printf(" Lo que esta en el earchivo que es: %s \n", msgre);
printf("%s \n", msgrec);
execv("Ej2", 0); //Ejecucion del archivo Ej2
*/
}
опечатка? 'msgre' ->' msgrec' – BLUEPIXY