La definizione del UNIX open() funzione quando utilizzato con la bandiera O_CREAT è che richiede un terzo argomento di nome modalità al fine di impostare i privilegi dei file.Unix O_CREAT bandiera senza modalità specificata
Cosa succede se la modalità non è specificata?
int file;
static const char filename[] = "test.test";
if ((file = open(filename, O_RDWR | O_CREAT | O_TRUNC)) == 1)
{
perror("Error opening file.");
exit(EXIT_FAILURE);
}
close(file);
Cosa succede con il file creato utilizzando tali flag? Sul mio sistema ottengo:
-r--r-s--- 1 hyperboreean hyperboreean 0 2009-02-25 01:40 test.test
Una teoria è che la funzione aperta appare sullo stack e controlli per il parametro mode e finisce con un numero intero casuale che trova.
Che cosa dice lo standard?
Questo è il motivo per cui i prototipi di funzione sono stati inventati. – womble
Il tuo commento non ha senso. – SoapBox
Non lo è, anzi. E nemmeno il downvote. – cdonner