begin process at 2010 02 10 07:28:42
  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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,608 sec (4)

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