Mi sono appena iscritto.
Ho da poco iniziato all'università l'esame di LSO (laboratorio di sistemi operativi).
Avrei alcuni dubbi vorrei che mi venissero chiariti se è possibile.
Dunque stavo usando le system call principali ovvero open, write .......
Queste devono restituire un File Descriptor. Ma se la funzione viene eseguita correttamente l'fd deve essere positivo no? Al contrario deve essere negativo. Giusto ho capito bene?
Stavo facendo delle prove con la open.
Qui la prima open mi da errore come volevo io, però per capire meglio ho fatto stampare i due file descritor.
Ma se la seconda open funziona come mai mi da in output un valore negativo?
codice:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
int main(void)
{
int fdin, fdin2;
if ((fdin=open("open",O_RDONLY))<0)
printf("\nE' avvenuto un errore:\n");
printf("\n%d\n\n",&fdin);
close(fdin);
if ((fdin2=open("open2",O_RDWR | O_CREAT,0644))<0)
printf("\nC'è stato un problema\n\n");
printf("\n%d\n\n",&fdin2);
close(fdin2);
exit(0);
}
Grazie per la vostra attenzione.