2010-09-20 5 views
0

Aller à la documentation de la fonction de débordement thorugh. J'ai trouvé que le débordement a suivi comme valeurs de retour.Requête concernant la fonction de débordement de la fonction streambuf

Valeur de retour:

une valeur différente de EOF (ou traits :: eof() pour d'autres traits) signaux succès.

Si la fonction échoue, EOF (ou traits :: eof() pour d'autres traits) est renvoyé ou une exception est levée.

source: "http://www.cplusplus.com/reference/iostream/streambuf/overflow/"

Quelqu'un peut-il s'il vous plaît me dire où sceanrios est fonction de débordement va à travers une exception? Toute aide sera appréciée

Répondre

0

Dans mon scénario problématique, il était faling car il ne sautait pas l'adresse suivante (les appels setp étaient incrémentés de 0), réessayant d'utiliser la même zone de mémoire et donnait une erreur de segmentation.

1

Streambuf est une abstraction pour le canal de stockage ou de communication sous-jacent du flux. La fonction overflow() peut échouer pour des raisons que le stockage ou le canal peut échouer. Par exemple. erreur de disque pour les fichiers disque, connexion interrompue pour les sockets etc.

0

Bien que WILX détaillé Fail (EOF) condition, la condition d'exception peut être l'un de ces: http://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/classstd_1_1exception.html (pouvez-vous deviner laquelle :) - mais il? devrait (évidemment) être std::overflow_error si vous écrivez votre propre flux de sortie ou quelque chose.

+0

Je ne pense pas que ce soit overflow_error parce que cette exception est utilisée pour "Thrown pour indiquer un dépassement arithmétique.". Je vais essayer de mettre une vérification dans l'exception et voir quel est le type d'exception (je pense que c'est std :: ios_base :: failure). Merci pour votre aide et wilx. – user258367

Questions connexes