Problème de fichier en C

[Résolu]
Signaler
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008
-
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008
-
Je cherche à créer un fichier qui s'ouvre lui même sans qu'il puisse dépendre de son propre nom. Est ce que c'est possible ?

FILE *fichier;
fichier = fopen("nom_du_fichier","a+");
fclose(fichier);

Mon but est qu'il puisse s'ouvrir lui même, même si on le renome.

11 réponses

Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

voici pour le dos
a.exe

main(int gc,char *gv[]) {

gv[0] = EST EGALE au NOM de ton exe
printf("%s",gv[0]);

resultat  a.exe 

}
///////////////////////

pour win
quelque chose comme ca de memoire j ai pas le code sous le nez
g_hInst = LPCREATESTRUCT(lParam)->hInstance;
Messages postés
15112
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 août 2021
98
Hello,
Euh...y'a pas de mystère: pour ouvrir un fichier, il faut lui spécifier un nom.
A moins de sauvegarder le nom que tu veux garder, pas de solution

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Mais le problème c'est que j'ai créer un SFX, c'est un fichier d'installation si tu préfère, mais le problème c'est que si tu change le nom de mon programme, alors mon SFX ne fait rien du tout, d'où l'utilité du sujet. Sinon j'ai mieux comme problème à résoudre, est ce qu'on peut créer un programme capable d'afficher son nom dans la console ?
Messages postés
15112
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 août 2021
98
Ah ça oui: un programme peut afficher son nom dans la console.
Regarde la fonction getModuleFileName(). Peut-être sera-t-elle la solution à tes ennuis...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Ouais mais je préfère un code qui soit portable sur tout les systèmes, il y a pas moyen d'utiliser les fonctions de bases de stdio.h ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Parce que ton SFX est portable (tu peux le lancer sur Linux comme sur Windows) ???

Si tu veux te borner au "portable", il faudra alors te contenter de quelques printf sur la console et rien de plus. Un prog portable l'est tant qu'il ne fait rien.

ciao...
BruNews, MVP VC++
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
On peut également utiliser la cde suivante:

GetCommandLine()

et en extraire le 1er elt...

___________________________________________________________
Magicalement
Nono
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Je vais essayer ce que dit nanonavich. Si ça marche, je publirais le programme sur le site.
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

J'arrive pas à le compiler, ça écrit dans la console :
main.c:3: conflicting types for `argv'
main.c:3: previous declaration of `argv'
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Il n'y a plus aucun problème désormais. J'ai tout corriger.
Messages postés
34
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
14 septembre 2008

Mon programme d'installation marche extrêmement bien.