Comment conserver les entrées avant CTRL-C

Avec ce code, j’ai trouvé ici sur Stack:

... char buffer[256] while((count=read(0, buffer, 256)) > 1) { if(buffer[count] = '\n') break; } buffer[n-1] ='\0'; 

Je peux lire à partir de l’entrée standard, mais j’ai 2 questions:

  1. Pourquoi '=' utilisé dans if () au lieu de '==' ?
  2. Si j’appuie sur CTRL-C après avoir écrit quelque chose, comment puis-je conserver ce que j’ai écrit?

Merci

Pourquoi ‘=’ est-il utilisé dans if () au lieu de ‘==’?

Dans la déclaration if, c’est probablement une faute de frappe. Car

 buffer[count] = '\n' 

sera toujours ‘\ n’, et en C c’est vrai (non nul).

Si j’appuie sur CTRL-C après avoir écrit quelque chose, comment puis-je conserver ce que j’ai écrit?

Appuyez sur CTRL-C dans le terminal pour envoyer un SIGINT au processus en cours. Normalement, votre application se ferme immédiatement, peu importe ce qu’elle fait.

Vous pouvez capturer l’événement SIGINT avec quelques lignes de code , mais à quoi bon “garder ce que vous avez écrit”?