Je suis actuellement l'assistant d'enseignement pour une classe Introduction à C. La classe est enseignée à l'aide de Visual Studio, mais lors de l'évaluation, j'utilise un simple script batch Windows pour traiter toutes les soumissions d'affectation, les compiler, les exécuter sur un fichier test et rediriger la sortie vers une série de fichiers texte. sortir, baliser et remettre aux étudiants. L'ensemble du processus fonctionne très bien, sauf que lorsque je redirige stdin, il n'apparaît pas dans la sortie redirigée de la même manière que lorsque le même fichier stdin est tapé directement dans la console. Pour cette raison, la sortie du code formaté pour la console ne s'affiche pas correctement dans la sortie redirigée. Les extraits de fichier suivants montrent ce problème. Est-ce que quelqu'un sait d'une solution simple?Rediriger Stdin et Stdout vers le fichier
fichier: example.c
#include <stdio.h>
int main()
{
int v;
printf("Enter a number: ");
scanf("%i", &v);
printf("You entered: %d\n", v);
return 0;
}
fichier: input.txt
42
sortie (Console)
C:\>example.exe
Enter a number: 42
You entered: 42
C:\>
sortie (Redirection)
C:\>example.exe <input.txt> output.txt
C:\>more output.txt
Enter a number: You entered: 42
C:\>
Je me rends compte que le comportement que je vois est correct. Ce que je voudrais faire, c'est simuler le comportement de la configuration de la console avec un script. Avez-vous un petit exemple de comment faire avec POSIX? (J'ai beaucoup travaillé avec Cygwin/* nix avant et je n'ai aucun problème à utiliser l'un ou l'autre si c'est ce qu'il faut.) –
Laissez-moi voir si je trouve un exemple de code plus tard. – ypnos
Regardez ici pour un bon exemple de forking w/redirection, puis exec: http://publicabstractvoid.blogspot.com/2008/01/forkexec-while-redirecting-io.html – ypnos