begin process at 2008 07 20 09:31:02
1 213 150 membres
71 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : FILE_SHARE_READ sous linux ? [ Linux / Fichier & Disque ] (supergrey)

FILE_SHARE_READ sous linux ? le 06/05/2008 17:50:49

supergrey
Bonjour, j'essaye d'ouvrir un fichier en écriture et lecture mais si je l'ouvre une seconde fois (sans le fermer biensur) ça ne fonctionne pas.
Sous windows il y a FILE_SHARE_READ mais sous linux je ne sais pas.
Voila la fonction que j'utilise pour ouvrir: open(file,O_RDWR|O_CREAT)

J'ai bien essayé de cherché sur google mais c'est bien plus facile de trouver de l'aide pour Windows, donc si quelqu'un pouvait m'aider.
Merci

Re : FILE_SHARE_READ sous linux ? le 07/05/2008 02:26:53

SAKingdom
Membre Club
Ça fonctionne pour moi si je donne à l'utilisateur les droits nécessaires sur le fichier:

int main (int argc, char *argv[])
{
    const char filepath[] = "/tmp/toto.txt";
    int fd1 = open(filepath, O_RDWR|O_CREAT, S_IRUSR);

    if(fd1 != -1) {
        int fd2;

        write(fd1, "Bonjour", 7);
   
        if((fd2 = open(filepath, O_RDONLY)) != -1) {
            char buf[12];

            buf[read(fd2, buf, 7)] = 0;
       
            printf("%s\n", buf);
           
            close(fd2);
        }
        else printf("Impossible de reouvrir le fichier\n");
   
        close(fd1);

        remove(filepath);
    }
    else printf("Impossible d'ouvrir le fichier\n");

    return 0;
}

C++ (@++)


Re : FILE_SHARE_READ sous linux ? le 07/05/2008 09:14:42

supergrey
Si je fais ça, le second renvoi une erreur d'acces:
int ftest=open("fichier",O_RDWR|OCREAT, S_IRWXO);
int ftest2=open("fichier",O_RDWR|OCREAT);

PS. normalement les ouverture sont dans des thread différents d'ou l'utilité, mais la c'est pour tester...

Re : FILE_SHARE_READ sous linux ? le 07/05/2008 16:24:30

SAKingdom
Membre Club
As-tu essayé avec S_IRWXU ?
Aussi, lors de la seconde ouverture, le flag O_CREAT est, normalement, inutile.

C++ (@++)


Re : FILE_SHARE_READ sous linux ? le 07/05/2008 19:06:53

supergrey
Oui ça marche, j'avais trouvé ça sur un site, j'avais du mal copié... merci.

supergrey


Classé sous : ouvrir, file, linux, read, share

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS