Ce qui devrait COMSPEC et le CHEMIN d'accès de l'environnement des variables de localiser la commande-interprète, à l'aide de system()?

Sont les OS (XP) les variables d'environnement les mêmes que ceux utilisés dans un processus en cours d'exécution à partir de visual studio .NET C++?

Il semble que l'interpréteur de commande n'est pas trouvée:

Lors de l'utilisation de la valeur NULL comme la commande, system() renvoie 0 et avec la commande - ENOENT Command interpreter cannot be found.

Dans windows (Système->Variables d'Environnement), COMSPEC contient le chemin d'accès à cmd.exe

CHEMIN d'accès ne fonctionne pas.

Ce qui devrait CHEMIN?

Autre que cela, vous ne savez pas pourquoi il ne peut pas trouver l'interprète.

Toutes les suggestions sont les bienvenues. Merci.

  if( system("tail -500 log.txt") == -1)
  {
      //Error calling tail.exe on log 
      //errno is a system macro that expands int returning
      //the last error. strerror() converts the error to it's
      //corresponding error message. 
      printf("Error calling tail.exe with system(): %s",strerror( errno ));

  }

EDIT1

Entrer dans le système() argv[0] = _tgetenv(_T("COMSPEC"));retourne un pointeur incorrect. Ce qui est un exécutable cgi, la COMPSEC n'est pas correctement configuré ou héritées de l'OS.

Je vais maintenant définir COMSPEC avant le processus de démarrage et d'utiliser la fonction CreateProcess() comme dans exemple 2

Cependant, le processus de création encore de retour 0? Se rapprocher. Voir tous les problèmes avec cela? Merci.

 if (! SetEnvironmentVariable("COMSPEC", "C:\\WINDOWS\\system32\\cmd.exe") )
 {
    printf("SetEnvironmentVariable failed (%d)\n", GetLastError());         
 }

 //r = system("dir c:\\");
 r = CreateProcess("dir.exe", NULL, NULL, NULL, TRUE, NULL, 
    NULL,     //inherit parent's environment 
    NULL, &si, &pi);

EDIT 2

Lesetenvironmentvariable() ne fonctionne pas. Cependant, putenv n'.

_putenv( "COMSPEC=C:\\WINDOWS\\system32\\cmd.exe" ); //C4996

Pas sûr de ce que la différence est...?

Maintenant que cette env var est définie, toute demande sur le cgi application à partir du navigateur donne la possibilité d'enregistrer la cgi.exe au lieu de l'exécuter.. ne sais Pas pourquoi cela a changé sur cette base env var?

InformationsquelleAutor T.T.T. | 2010-02-16