f.bandiera
28-02-2009, 19:23
Buonasera,
vorrei chiedere un consiglio...
In un programma voglio "aprire" una directory, tra i vari modi in cui questo è possibile, ce ne sono alcuni che mi danno dei problemi. In particolare:
1) se scrivo:
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
.
.
int value;
DIR * dfs;
dfs = fdopendir( ( value=open(".", O_RDONLY) ) );
.
.
al momento della compilazione con gcc -g -Wall -o ...... mi segnala
WARNING implicit declaration of fdopendir
WARNING assignment makes pointer from integer without a cast
2) se scrivo:
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
.
.
int value;
value = open(".", O_RDONLY | O_DIRECTORY);
.
.
al momento della compilazione con gcc -g -Wall -o ...... mi segnala
ERROR O_DIRECTORY undeclared...
PERCHE'?
Ho anche visto (man 2 open) che per usare O_DIRECTORY potrebbe essere necessario specificare la _GNU_SOURCE macro..... cosa vuol dire????
Ciao e grazie,
Francesco
vorrei chiedere un consiglio...
In un programma voglio "aprire" una directory, tra i vari modi in cui questo è possibile, ce ne sono alcuni che mi danno dei problemi. In particolare:
1) se scrivo:
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
.
.
int value;
DIR * dfs;
dfs = fdopendir( ( value=open(".", O_RDONLY) ) );
.
.
al momento della compilazione con gcc -g -Wall -o ...... mi segnala
WARNING implicit declaration of fdopendir
WARNING assignment makes pointer from integer without a cast
2) se scrivo:
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
.
.
int value;
value = open(".", O_RDONLY | O_DIRECTORY);
.
.
al momento della compilazione con gcc -g -Wall -o ...... mi segnala
ERROR O_DIRECTORY undeclared...
PERCHE'?
Ho anche visto (man 2 open) che per usare O_DIRECTORY potrebbe essere necessario specificare la _GNU_SOURCE macro..... cosa vuol dire????
Ciao e grazie,
Francesco