J'ai une question à poser à tout le monde... Cela fait quelques jours que je me penche sur la question, que je bricole et que je m'amuse, mais même en faisant cela, je me retrouve avec un tas d'erreurs...
Ce que j'essaie de faire, c'est de prendre le programme ci-dessous et de le modifier de manière à ce qu'il prenne un argument de ligne de commande optionnel. fichier d'entrée . Si fichier d'entrée est donnée, alors la copie fichier d'entrée sur la sortie standard, sinon copier l'entrée standard sur la sortie standard comme auparavant.
L'astuce réside dans le fait que la solution doit utiliser la boucle de copie originale (lignes 9 à 11) dans les deux cas. On ne peut qu'insérer du code et ne pas modifier le code existant. Toute aide serait la bienvenue. Merci beaucoup.
/* $begin cpfile */
include "csapp.h"
int main(int argc, char **argv)
{
int n;
rio_t rio;
char buf[MAXLINE];
Rio_readinitb(&rio, STDIN_FILENO); //line 9
while((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0) //line 10
Rio_writen(STDOUT_FILENO, buf, n); //line 11
/* $end cpfile */
exit(0);
/* $begin cpfile */
}
/* $end cpfile */