Y a-t-il des limitations de longueur d'entrée STDIN (en quantité d'entrée ou de vitesse d'entrée)? p>
6 Réponses :
Il n'y a aucune limite de longueur sur stdin code>. Si vous ne pouvez pas recevoir de grandes quantités de données, votre code crée les problèmes. P>
et toute vitesse d'envoi de limites de données?
Selon tout autre Site de questions-réponses préféré :
Il ne devrait pas y avoir une limite à la taille du flux (que ce soit STDIN ou une autre). Ce que vous voudrez peut-être vérifier cependant, est l'endroit où vous stockez ces personnages ... Y a-t-il assez d'espace pour les stocker tous? P>
Essayez simplement un code comme celui-ci (sans stocker!): P>
for (;;) { int c = getc(stdin); if (c == EOF) { break; } putc(c, stdout); }
Il y a des limites dans la vitesse du transfert. En général, ils sont approximativement identiques à tout tuyau "Unix". Il existe des mécanismes plus efficaces proposés par la plupart des systèmes d'exploitation, mais les tuyaux sont assez rapides ... en supposant que vous n'utilisez pas PrintF & telle. P>
Si vous souhaitez obtenir des gigaoctets de données via stdin code> n'a aucune limite de longueur ou de vitesse. P>
stdin code> vous pouvez, et votre ordinateur le fournira aussi vite que possible. P>
Cela dépend probablement du pilote STDIN! P>
stdin (comme concept) n'a aucune limitation. P>
Je pense que les développeurs de noyau (de tout système) ont fait des choix de conception qui ajoutent des limitations. P>
Essayez-le:
Le OUI code> Unix commande les lignes de
y code> sans fin. Tuyez-le à un programme C qui vient de lire STDIN et le met sur stdout (E.G.
CAT code>, mais
TR 'Y' 'Y' code> fonctionne également). Attendez que
CAT CODE> CAT CODE> Atteignez la limite: P>
yes | cat
Il est utilisé lorsqu'un autre commande a besoin de confirmation qui ne peut pas être désactivée (comme un code RM -I code>).
Pourquoi ne postez-vous pas le code qui vous donne des problèmes
question est générale. Sur les rools principaux et les concepts.
La quantité d'entrée tamponnée est déterminée par le système d'exploitation, je pense. Si la mémoire tampon est pleine, la tentative d'écrit peut bloquer / bloquer et si le tampon est vide, la tentative de lecture peut / va bloquer. (Je devine ici).
C'est un flux. Il fit des caractères sans fin jusqu'à ce que l'utilisateur s'endort au clavier.
Le typing du clavier n'a rien à voir avec mon colle instantané de 50000 caractères =)
@OLE: Si cela correspond au Presse-papiers, pourquoi ne pensez-vous pas que la mémoire tampon de la mémoire du presse-papiers soit la source du flux STDIN?
'chat / dev / zéro | WC -C '. S'il imprime une valeur, c'est la limite. si non, ...
Si vous avez terminé avec la question, pouvez-vous s'il vous plaît accepter l'une des réponses?