Salut,
J'aimerais crée un dossier en C, j'ai donc utilisé la fonction mkdir comme ca :
if(mkdir(argv[2], ACCESSPERMS) == 1)
{
// Ici je met un fichier dans le dossier créée
}
Le problème c'est que le dossier se crée bien, mais impossible de copier le fichier dedans, je crois que c'est parce qu'il se crée en lecture seul. J'ai donc cherché a le crée en lecture écriture, et j'ai vu qu'il faut passer ACCESSPERMS en second paramètre.
https://techoverflow.net/2013/04/05/how-to-use-mkdir-from-sysstat-h/
Mais ca ne change rien, il est toujours créée en lecture seul
Ca tombe mal c'est pour un travail a rendre avant demain et il me reste plus qu'a tester que la fonction copie bien le fichier dans le dossier
Je suis sous windows 10 et j'utilise le terminal ubuntu pour windows (le truc sur microsoft store )
quel permission recoit le repertoire quand tu le cree?
Le 09 novembre 2019 à 21:28:57 godrik a écrit :
quel permission recoit le repertoire quand tu le cree?
Quand je fait clique droit -> propriété, il est en lecture seul
Pourtant j'ai bien mit ACCESSPERMS en second parametre
"mkdir() renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur. "
Dixit le man. C'est ta condition qui est fausse.
Le 09 novembre 2019 à 22:53:16 Raidden36 a écrit :
"mkdir() renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur. "Dixit le man. C'est ta condition qui est fausse.
Désolé, oui dans mon exemple c'est vrai que la condition est pas bien fait, mais dans mon code j'ai bien mit 0
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
int main()
{
system("ls -R");
mkdir("test", ACCESSPERMS);
write(open("./test/lol", O_CREAT | O_RDWR), "test", 4);
system("ls -R");
return 0;
}
Code très sale créer pour l’occasion, mais ça fonctionne très bien. Je pense que tu ne nous a pas tout dit sur ton code.