Sto usando x86_64 GNU/Linux con gcc.
sezione sinossi del man -s2 open
dice:open() richiesta file di chiamata di sistema
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
Ora, quando provo a compilare il seguente frammento di codice, gcc
non lanciare un avvertimento/errore.
#include <stdio.h>
#include <fcntl.h>
int main(int argc, char **argv)
{
int fd;
fd = open("foo.txt", O_RDWR, 0777);
if(fd == -1)
perror("open");
fd = creat("foo.txt", 0777);
if(fd == -1)
perror("creat");
close(fd);
return 0;
}
Così sono types.h
e stat.h
facoltativa? Che scopo servono nella manpage di open()
?
Controllare 'fcntl.h' - Presumo che includa' types.h' e 'stat.h' – user590028
Include' 'e' '. Ma ancora non capisco perché '' e '' ci siano in 'man -s2 open'. –
rootkea
Dato che non hai specificato, hai compilato '-Wall'? In caso contrario, farlo e controllare quindi gli avvisi. – DoxyLover