begin process at 2012 02 12 18:57:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Fichier & Disque

 > 

FILE_SHARE_READ sous linux ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

FILE_SHARE_READ sous linux ?

mardi 6 mai 2008 à 17:50:49 | FILE_SHARE_READ sous linux ?

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
mercredi 7 mai 2008 à 02:26:53 | Re : FILE_SHARE_READ sous linux ?

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++ (@++)

mercredi 7 mai 2008 à 09:14:42 | Re : FILE_SHARE_READ sous linux ?

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...
mercredi 7 mai 2008 à 16:24:30 | Re : FILE_SHARE_READ sous linux ?

SAKingdom

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

C++ (@++)

mercredi 7 mai 2008 à 19:06:53 | Re : FILE_SHARE_READ sous linux ?

supergrey

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

supergrey


Cette discussion est classée dans : ouvrir, file, linux, read, share


Répondre à ce message

Sujets en rapport avec ce message

Problème pour ouvrir une fenetre et écrire dedans sous Linux en C++ [ par Nicolas ] Je souhaiterais savoir comment ouvrir une fenetre sous linux en C++(pour écrire dedans avec des "cout")MerciA+ Nicolas Problème pour ouvrir une fenetre sous linux en c++ [ par Nicolas ] Je souhaiterais savoir comment ouvrir une fenetre sous linux en C++(pour écrire dedans avec des "cout")MerciA+ Nicolas Problème pour ouvrir une fenetre sous linux en c++ [ par Nicolas ] Je souhaiterais savoir comment ouvrir une fenetre sous linux en C++(pour écrire dedans avec des "cout")MerciA+ Nicolas Avis des PROS! [ par UnExPeCtEdSpy ] Bonjour,je suis plus familier du vb que du c++ alors j'vous d'mande de l'aide :J'utilise une Dll en c+ avec un prog en Vb qui manipule des fichiers.Qu Probleme d'ecriture et copie fichier texte [ par metek ] SalutMon but est d'etudier un fichier txt de rechercher un mot,le localiser et enfin de copier le rest de la ligne(donc les mots qui le suivent sur la [C++] Ouvrir un fichier en donnant le chemin + parcours par caractère [ par Tamahoma ] Bonjour,je voudrais savoir comment ouvrir un fichier en donnant son cheminj'ai testé comme ceci :string chemin;cout << "saisir le chemin du fichier a Compatibility Windows/Linux pour les fonctions _close _write _read [ par riadhmn ] Salut,J'ai du code C, écrit sous Visual C++ 6.0, et qui utilise _close, _write, _read, j'en ai besoin sous Linux j'ai une distribution Suse, et lorsqu Ouvrir Partition Ext3 avec l'Explorateur... [ par lol55 ] Bonjour,Suite à une mauvaise manip (j'ai essayé d'installer Linux), mon Disque dur s'est transformé au format Ext2 de Linux donc je n'y ai plus accès File Mapping entre 2 programmes [ par Arkadias ] Bonjour,Je développe une application ou il sera nécessaire à 2 programmes différents (mais éxecuté sur la même machine) d'échanger les données d'un bu [C] Un timeOut sur Socket en détails [Linux] [ par ZedMaTrix ] Salut a tous.Bon j'ai pas mal cherché sur le site, et appart des débuts de réponses, je n'ai rien trouvé qui m'ai aidé à résoudre ce problème de TimeO


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,059 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales