Mode langage C sous mac différent de POSIX ?

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
 
Il va falloir apprendre à fouiller dans les includes ou sur Google. :siffle: Cette fonction "open" et les constantes que tu cherches sont déclarées dans le fichier /usr/include/sys/fcntl.h :rateau:
 
Merci beaucoup NTX ça marche, je suis un peu jeune dans la programmation alors excuse moi de pas savoir où trouver les descriptions de biblio, mais je prends note ;)