Rechercher : dans
Par :

Prob ouv fichier avec chemin absolu c++

Dernière réponse le 4 aoû 2008 à 16:15:33 Eti38, le 4 aoû 2008 à 15:04:20 
 Signaler ce message aux modérateurs

Bonjour,
Je code en c++:

Je souhaite ouvrir un fichier par la primitive ofstream.
Je lui fournit le nom du fichier a ouvrir par une macro définit en début de fichier.
Le programme marche quand je lui donne le chemin relatif.

Mon probleme est que maintenant je souhaite lancer ce programme "a distance":

J'ai changé la macro et lui ait donné comme valeur le chemin absolu du fichier:

Ca ne marche pas

Cela vous rapelle quelquechose????

Configuration: Linux
Mozilla 1.8.1.14

Meilleures réponses pour « prob ouv fichier avec chemin absolu c++ » dans :
Fichier EPS VoirFormat EPS Un fichier EPS (Encapsulated PostScript) est un fichier PostScript encapsulé, c'est-à-dire un fichier PostScript prévu pour pouvoir être incorporé dans un autre fichier. Comment lire un fichier EPS ? Pour ouvrir un tel fichier, il...
Fichier CUE VoirFormat CUE Les fichiers [bin.php3 BIN] et CUE sont respectivement : .BIN : une image de CD, c'est-à-dire une copie binaire d'un CD-ROM ou d'un DVD-ROM sous forme d'un fichier pouvant être stocké sur disque dur. .CUE : informations sur les...
Fichier NFO VoirFormat NFO Un fichier NFO est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Un tel fichier accompagne généralement des fichiers en téléchargement pour apporter des informations additionnelles sur...

1

overcode, le 4 aoû 2008 à 15:07:14

Qu'est ce tu veux dire par "à distance" ?

Répondre à overcode

2

Eti38, le 4 aoû 2008 à 15:10:17

Un autre programme se situant autre part ds l'arborescence doit lancer le premier...
(Fork,execve,....)

Répondre à Eti38

3

overcode, le 4 aoû 2008 à 15:16:15

Je ne me rappelle plus très bien de ça en C++, mais que reçois-tu quand ça ne marche pas ? open te lance une exception ou quelque chose comme ça ?
Ton fichier n'est pas ouvert par un autre process ? Parce qu'en écriture (ofstream) il n'y a qu'un process à la fois

Répondre à overcode

4

Eti38, le 4 aoû 2008 à 15:19:47

HA oui, j'ai ommis un détail qui peut avoir de l'importance.
L'autre programme est en c....

j'avais vu ds le man d'execve quon pouvait lancer un script!
Peut-être ce que je vais devoir faire....

Quand ca ne marche pas, ca bloque juste... il boucle peut-etre quelquepart..

Répondre à Eti38

5

Eti38, le 4 aoû 2008 à 15:23:38

Mon code:
ofstream file(......);

a la suite de cela, file vaut zero.
cela signifie que l'ouverture n'a pas eu lieu...

Répondre à Eti38

6

overcode, le 4 aoû 2008 à 15:27:37

Ton nom de fichier contient-il un caractère blanc ou spécial ?

Répondre à overcode

7

Eti38, le 4 aoû 2008 à 15:37:39

Le seul caractere special est le ~ indiquant la racine..
il me semble que ce n'est pas problématique...
me trompe-je????????

Répondre à Eti38

8

Char Snipeur, le 4 aoû 2008 à 15:38:18

Oaui, une erreur de "\" non protégé, ou d'espace.
donne nous ta macro, ton chemin absolue, et l'appel à la macro.
(d'ailleur les macro, c'est à méga éviter) Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

9

overcode, le 4 aoû 2008 à 15:44:09

Fais voir le nom de fichier, ou le bout de programme (macro + ofstream)

Répondre à overcode

10

Eti38, le 4 aoû 2008 à 15:45:58

En fait j'ai pas tout dit.............;
je vous la refait avec la version qui marche:
la macro: "./central_memory/file"

comme vous l'aurais compris,je "simule" une memoire centrale dont les noms de fichiers sont fileN

donc je concatene une chaine A contenant ma macro ac celle contenant le numero du fichier a acceder (B)

Soit la concatenation de A et B donne C:

puis j'ouvre le fichier de nom C....

voila j'espere que vous avais compris....

Répondre à Eti38

11

overcode, le 4 aoû 2008 à 16:01:37

Pour le caractère ~, je ne suis pas sûr. Tu sauve le source en UTF-8, ou autre chose ?

Répondre à overcode

12

Eti38, le 4 aoû 2008 à 16:06:40

UTF-8

Répondre à Eti38

13

 overcode, le 4 aoû 2008 à 16:15:33

Central_memory est un dossier. Peut-être que tu t'es trompé dans le chemin complet, car la création d'un fichier en écriure par ofstream ne crée pas les répertoires intermédiaires, et donc renvoie un flux nul si le chemin n'existe pas.

Donne nous plus d'indications.

Répondre à overcode