Comment puis-je rediriger la sortie vers un fichier avec CreateProcess?

J'ai essayé d'utiliser la fonction CreateProcess pour exécuter une commande simple comme hg > test.txt. J'ai essayé de lancer la chaîne dans son ensemble (par opposition à séparer dans le nom d'une application et de ses paramètres). Pourquoi ne CreateProcess(0, "notepad.exe test.txt", ...) travail mais CreateProcess(0, "hg > test.txt", ...) ne l'est pas?

  • CreateProcess ne connaît pas les redirections. Pourquoi n'utilisez-vous pas system(3) ? Laissez-moi deviner: vous pouvez faire mieux que le système(3).
  • Je me suis toujours demandé ce que le function(number) notation signifiait. Ce n' system(3) veux dire?
  • Carnegie La section du manuel. man 3 system.
  • man 3 system pour Windows??
  • il peut certainement faire mieux que le système (sous Windows). Système de lancement cmd.exe et de charger tous les types de dépendances et de provoquer toutes sortes de choses inutiles à arriver.
  • En fait, CreateProcess() a une lpStartupInfo structure qui prend des poignées pour la redirection de flux, si elle ne sait sur les redirections. Il n'a tout simplement pas utiliser le shell de notation.
  • c'est à partir d'Unix, vous tapez man 3 système et cela signifie rechercher de la documentation du système dans la section 3 du manuel pages (Api, intégré dans les commandes, etc)
  • André Caron d'Accord 🙂 je ne sais pas si ça vaut le coup dans ce cas, mais je vais garder cela à l'esprit.

InformationsquelleAutor Paul Manta | 2011-08-10