Bonjour
je suis en train de porter une petite appli C++ de linux sous windows 7 (je souhaiterais la faire compatible pour les 2)

Que mon fichier fasse 1 giga ou 500 j'ai un problème sur la fonction open en écriture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <unistd.h>
#include <time.h>
#include <string>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <set>
 
#define O_LARGEFILE	0   
......
 
    fd = open(filename.c_str(), O_RDONLY|O_LARGEFILE);
.....
    fd = open(filename.c_str(), O_RDWR|O_LARGEFILE);
    if (fd < 0) {
        ostringstream oss;
        oss << "! Unable to open the input file: " << filename << " for writing";
 
.....
la ligne avec O_RDONLY|O_LARGEFILE fonctionne parfaitement

mais pas celle avec O_RDWR|O_LARGEFILE et j'obtiens bien sûr le message codé "Unable to open the input file:..."

Je précise que c'est moi qui est ajouté la ligne
#define O_LARGEFILE 0
parce que je n'ai pas trouvé où cette constante pouvait être définie ailleurs.
Est-ce qu'elle peut être la cause du problème?

Si quelqu'un a une idée...

Merci