Concretement qu'est-ce qu'un buffer?
An0d
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
non -
non -
Bonjour, voila je suis étudiant en informatique et je suis rentré dans ces études parce que j'adore l'informatique sans pour autant m'y connaitre! alors voila en cours nous avons vu theoriquement ce qu'est un buffer ( ensemble d'octet ou sont copiés les des enregistrements, et un buffer est donc associé à un fichier )et on l'a utilisé tout le temps dans des exemples ( ex : on charge l'identifiant recherché dans tel buffer et les identifiants des enregistrement du fichier dans lequel on recherche dans un autre buffer ) mais aujourd'hui ( ca fait qd meme depuis le mois d'octobre qu'on parle de buffer et c'est maintenant que je me pose la question ) je me demande ce qu'est concretement un buffer parceque on a vu la notion de buffer overflow et je crois que dans ma vision je confond un buffer avec une variable ( j'ai commencé la programmation ) car lorsqu'on programme, qd on li une information dans un fichier, on la met dans une variable et pas dans le buffer ? donc pour moi l'overflow se faisait lorsqu'on depassé la capacité de la variable, mais je sais que ce n'est pas ca lol, donc voila j'aimerais avoir une petite " mise au poin " ce serait bien gentil, et en fait je vois sur le forum qu'on a parlé de buffer de clavier, etc ... je ne savais meme pas que ca existait lol, voila pour un etudiant en info je ne suis pas tres au courant, mais je ne demande qu'à apprendre :)
merci beaucoup d'avoir pris la peine de tout lire et de me repondre :)
a bientot
merci beaucoup d'avoir pris la peine de tout lire et de me repondre :)
a bientot
A voir également:
- Uma frame buffer size c'est quoi
- Buffer informatique - Meilleures réponses
- Uma frame buffer size - Meilleures réponses
- Application frame host - Forum Windows 10
- Commun file upload max size - Forum Réseaux sociaux
- Problème Buffer - Forum C
- Tampon size limit 20 - Forum TV & Vidéo
- COMPRENDRE BUFFER - Forum C
9 réponses
buffer = zone mémoire de taille limitée servant à stocker des données (généralement de façon temporaire).
On utilise les buffers pour l'accès aux fichiers, mais aussi pour le réseau et pour le stockage d'un tas d'autres informations.
Buffer overflow, c'est le fait d'entrer trop de données dans le buffer, provoquant une écriture dans une zone mémoire hors du buffer (--> d'où les exploits, virus...)
Dans certains cas (Cobol), on créé des buffers qui sont exactement de la taille de chaque enregistrement du fichier qu'on veut lire.
On a définit donc une structure (numéro client, nom, adresse, code postale, ville...) et on créé un buffer de la taille exacte de cette structure.
Ainsi, on pourra par exemple lire 1 client à la fois du fichier.
C'est plus pratique.
On utilise les buffers pour l'accès aux fichiers, mais aussi pour le réseau et pour le stockage d'un tas d'autres informations.
Buffer overflow, c'est le fait d'entrer trop de données dans le buffer, provoquant une écriture dans une zone mémoire hors du buffer (--> d'où les exploits, virus...)
Dans certains cas (Cobol), on créé des buffers qui sont exactement de la taille de chaque enregistrement du fichier qu'on veut lire.
On a définit donc une structure (numéro client, nom, adresse, code postale, ville...) et on créé un buffer de la taille exacte de cette structure.
Ainsi, on pourra par exemple lire 1 client à la fois du fichier.
C'est plus pratique.
non
merci
il y a les buffers FIFO => first in first out
on peut se représenter un bébé qu'on gave et qui salit ses couches
il y a le buffers LIFO => last in firs out
on peut se représenter un bébé qu'on gave et qui revomit tout.
Voilà un exmple de buffer concret: les intestins ! ;-)
on peut se représenter un bébé qu'on gave et qui salit ses couches
il y a le buffers LIFO => last in firs out
on peut se représenter un bébé qu'on gave et qui revomit tout.
Voilà un exmple de buffer concret: les intestins ! ;-)
Yop,
pour etre concis, un buffer est un tampon mémoire utilisé par un programme pour stocker temporairement ses variables.
Par exemple, lorsque tu déclares une variable avec ton langage favoris, tu alloues un buffer de la taille du type de ta variable. Le buffer overflow intervient quand tu dépasses la capacité de ce buffer et donc que tu accèdes à une zone mémoire qui ne t'est pas réservée.
++
Nico
pour etre concis, un buffer est un tampon mémoire utilisé par un programme pour stocker temporairement ses variables.
Par exemple, lorsque tu déclares une variable avec ton langage favoris, tu alloues un buffer de la taille du type de ta variable. Le buffer overflow intervient quand tu dépasses la capacité de ce buffer et donc que tu accèdes à une zone mémoire qui ne t'est pas réservée.
++
Nico
Ok merci, mais je venais justement de relire une partie de cours et faire le rapprochement avec le COBOL ( et oui je commence par COBOL et Fortran lol ) et en cobol on defini la taille des records des blocs, etc ... donc ca je comprend que c'est pour definir la taille et type du buffer, mais par ex en fortran non, or dans mon cours de "matériel" il dit qu'un buffer est associé a un fichier et qu'on copie les "enregistrements" or dans un enregistrement il peuy y avoir plusieurs info differentes donc plusieurs variables, donc le buffer est "subdivisés" pour faire la differences entre les variables ??? et je suppose que si on ne precise pas la longueur du buffer c pris en charge par l'OS ?
Merci
Dans la vie il y a 10 catégorie de personnes, celles qui com
prennent le binaire et celles qui ne le comprennent pas.
Merci
Dans la vie il y a 10 catégorie de personnes, celles qui com
prennent le binaire et celles qui ne le comprennent pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci de vos réponses, mais alors si par exemple on est en fortran ( désolé, mais je suis en premiere année et c'est ce qu'on nous apprend :) ) la on ne définit pas les structures, et donc un buffer est alloué a chaque variable par l'OS ?? et donc la pour l'overflow il suffit d'entrer une valeur trop grande pour la variable ???
Dans la vie il y a 10 catégorie de personnes, celles qui com
prennent le binaire et celles qui ne le comprennent pas.
Dans la vie il y a 10 catégorie de personnes, celles qui com
prennent le binaire et celles qui ne le comprennent pas.
Re,
pour ta question de buffer overflow sur une variable, j'ai jeté un oeil au fortran et il semble que ce soit un langage typé. Ce qui veut dire que les variables ont des types, c'est-à-dire une taille mémoire réservé ( ainsi que des opérations et des valeurs max) pour y mettre la représentation binaire de ce type. Donc si on a un type, on ne peut pas dépasser la taille. (Fait un test d'incrémentation d'un INTEGER pour voir sa valeur max)
Le buffer overflow n'est possible que sur des tableaux car on utilise un pointeur de zone mémoire qui peut pointer dans une mauvaise zone s'il n'est pas controlé par une borne.
pour ta question de buffer overflow sur une variable, j'ai jeté un oeil au fortran et il semble que ce soit un langage typé. Ce qui veut dire que les variables ont des types, c'est-à-dire une taille mémoire réservé ( ainsi que des opérations et des valeurs max) pour y mettre la représentation binaire de ce type. Donc si on a un type, on ne peut pas dépasser la taille. (Fait un test d'incrémentation d'un INTEGER pour voir sa valeur max)
Le buffer overflow n'est possible que sur des tableaux car on utilise un pointeur de zone mémoire qui peut pointer dans une mauvaise zone s'il n'est pas controlé par une borne.
Comme quoi, l'informaticien est poete :-)
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
Bonjour,
pour faire simple:
BUFFER = Zone Mémoire = Variable
Donc, quand tu crées une variable, c'est un buffer!
Par ailleurs, certaines fonctions sont dites "bufferisées". Qu'est-ce que ça veut dire?
Ça veut dire qu'elles travaillent sur une zone mémoire et pas sur les données physique.
Pourquoi elles font ça? Parce-que l'accès au matériel est plus lent que l'accès à la mémoire. En travaillant sur la mémoire, on est indépendant de la vitesse du matériel.
Ces fonctions ont donc toujours une fonction qui permet d'écrire le buffer sur le matériel.
Ex concret: l'écriture dans un fichier en C
fopen: cette fonction va lire les données sur le disque et les placer dans un buffer sur lequel on va pouvoir travailler
fwrite: écrit dans le buffer (pas sur le disque)
fflush: vide le buffer (écrit les données sur le disque)
fclose: permet aussi de vider le buffer
pour faire simple:
BUFFER = Zone Mémoire = Variable
Donc, quand tu crées une variable, c'est un buffer!
Par ailleurs, certaines fonctions sont dites "bufferisées". Qu'est-ce que ça veut dire?
Ça veut dire qu'elles travaillent sur une zone mémoire et pas sur les données physique.
Pourquoi elles font ça? Parce-que l'accès au matériel est plus lent que l'accès à la mémoire. En travaillant sur la mémoire, on est indépendant de la vitesse du matériel.
Ces fonctions ont donc toujours une fonction qui permet d'écrire le buffer sur le matériel.
Ex concret: l'écriture dans un fichier en C
fopen: cette fonction va lire les données sur le disque et les placer dans un buffer sur lequel on va pouvoir travailler
fwrite: écrit dans le buffer (pas sur le disque)
fflush: vide le buffer (écrit les données sur le disque)
fclose: permet aussi de vider le buffer