M
Membre supprimé 447952
Invité
Bonjour,
Sur mac les modes pour les fichiers sont différents que sous linux, alors qu'ils sont tout les deux sous POSIX ?
voici mon problème:
avant j'utilisais pour l'ouverture d'un fichier les modes "r","w" (ex : ouv=open(source,"r"); ), mais je souhaiterai utiliser les modes du type 0_RDONLY, 0_CREAT (etc) de POSIX, mais apparemment mac ne les reconnais pas.
voici ce que je voudrai faire, ouvrir le fichier char *source en lecture et si non présent le créer :
if(ouv=open(source,O_RDONLY|0_CREAT|0_TRUNC) == -1)
{
printf("ERREUR : ouverture source\n");
exit(1);
}
Mais il me met qu'il ne connais pas _RDONLY, _CREAT , _TRUNC alors que sous linux cela marche parfaitement.
J'ai supposé une erreur de bibliotèques donc je vous la met histoire de me dire si vous pensez aussi que ça vienne de ça:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
J'éspère ne pas avoir été trop confu.
Merci pour toute réponse ou ébauche de réponse.
Léo
Sur mac les modes pour les fichiers sont différents que sous linux, alors qu'ils sont tout les deux sous POSIX ?
voici mon problème:
avant j'utilisais pour l'ouverture d'un fichier les modes "r","w" (ex : ouv=open(source,"r"); ), mais je souhaiterai utiliser les modes du type 0_RDONLY, 0_CREAT (etc) de POSIX, mais apparemment mac ne les reconnais pas.
voici ce que je voudrai faire, ouvrir le fichier char *source en lecture et si non présent le créer :
if(ouv=open(source,O_RDONLY|0_CREAT|0_TRUNC) == -1)
{
printf("ERREUR : ouverture source\n");
exit(1);
}
Mais il me met qu'il ne connais pas _RDONLY, _CREAT , _TRUNC alors que sous linux cela marche parfaitement.
J'ai supposé une erreur de bibliotèques donc je vous la met histoire de me dire si vous pensez aussi que ça vienne de ça:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
J'éspère ne pas avoir été trop confu.
Merci pour toute réponse ou ébauche de réponse.
Léo