L3

Sujet

Écrire un programme en C qui prend en paramètre un fichier, le lit puis affiche son contenu sur la sortie standard. Si aucun fichier n'est passé en paramètre, lire sur l'entrée standard et afficher ce que l'utilisateur a écrit.


#include <unistd.h>
#include <fcntl.h>

#define MAX 1024

int main(int argc, char **argv) { int des, i, n; char tampon[MAX];

if (argc != 1) { for (i = 1; i < argc; i++) { des = open(argv[i], O_RDONLY);

  <span class="k">while</span> <span class="p">((</span><span class="n">n</span> <span class="o">=</span> <span class="n">read</span><span class="p">(</span><span class="n">des</span><span class="p">,</span> <span class="n">tampon</span><span class="p">,</span> <span class="n">MAX</span><span class="p">)))</span> <span class="p">{</span>
    <span class="n">write</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">tampon</span><span class="p">,</span> <span class="n">n</span><span class="p">);</span>
  <span class="p">}</span>

  <span class="n">close</span><span class="p">(</span><span class="n">des</span><span class="p">);</span>
<span class="p">}</span>

} else { while ((n = read(0, tampon, MAX))) write(1, tampon, n); } }