Fonction system() accès refusé

Signaler
Messages postés
5
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
19 mars 2009
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour,
oui je sais, la fonction system() c'est horrible mais bon là, je l'utilise surtout pour que ceux qui reprendront le code sachent à peu près ce que j'ai fait. Je cherche juste à lancer une commande avec cette fonction :

char* AlgoHuffmanAdaptive(const char* filename){
 unsigned long t0 = GetTickCount();
 char *cmd=(char*)malloc(100);
 char *str;
 str=(char *) malloc(50);
 strcpy(str,filename);
 strcat(str,"_HuffAda");
    sprintf(cmd, "h2com %s %s",filename,str);
 system(cmd);
 unsigned long duree = GetTickCount()-t0;
 printf("Temps d'execution AlgoHuffmanAdaptive = %ims\n",duree);
 return str;
}

c'est censé lancé en console le prog qui fait du huffman adaptatif : h2com fichiersource fichierdestination
L'intéret est de choper le temps d'execution comme vous l'aurez remarqué.
Bizarrement, quand je lance une console normale a partir de windows et que j'execute la commande, la premiere fois ca me renvoie "accès refusé" mais si je le fais une deuxieme fois, ca marche.
Mais quand je lance mon prog et que j'appelle la fonction, meme en mettant une boucle ca me met toujours "accès refusé" et je comprends pas trop trop pourquoi.

Aidez moi s'il vous plait !!!

5 réponses

Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
Salut,

Désolé, j'ai jamais utilisé system avec des programmes avec arguments. J'ai plutôt utilisé _spawnl.
Mais pourquoi ne pas utiliser _spawnl ou CreateProcess ?
Messages postés
5
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
19 mars 2009

J'avoue que je connais pas trop creatprocess, j'ai testé vite fait mais ca ne marche pas trop. En mm temps je travaille sous vc++ 6.0 non updaté car je suis sous licence au boulot donc je dois faire avec...
Nan je pense qu'il doit y avoir un probleme tout bete avec system mais j'arrive pas a trouver...
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
as-tu regardé _spawnl ? on l'utilisait pour lancer un exe en mode console dans une fenetre "cmd".
Messages postés
5
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
19 mars 2009

char* AlgoHuffmanAdaptive(const char* filename){
 unsigned long t0 = GetTickCount();
 char *cmd=(char*)malloc(100);
 char *str,*strPath;
 str=(char *) malloc(50);
 strPath=(char *) malloc(50);
 strcpy(strPath,"h2com.exe");
 strcpy(str,filename);
 strcat(str,"_HuffAda");
_spawnl( _P_NOWAIT, strPath, strPath,filename, str, NULL );

voila je l'utilise bien mais il me renvoie toujours "accès refusé"
la je sais plus trop quoi faire...
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
Je crois que t'as quand même le droit de faire l'update SP6 (qui est la dernière version) !