Syntaxe
#inclureExplication de la syntaxe
L'appel du système BRK () provoque la rupture du programme à la position du segment des données finales. Le segment de données final est arrondi aux limites de la page suivante, car la mémoire virtuelle est allouée en unités de page. Les tentatives de baisse de la valeur de rupture du programme en dessous de sa valeur initiale entraîneront certainement un comportement inattendu, comme un défaut de segmentation lors de la tentative d'accès aux données dans des parties désormais inaccessibles des segments de données initialisés ou non initialisés. Plusieurs facteurs déterminent la limite supérieure exacte de l'endroit où la rupture du programme peut être placée.
Pourquoi utiliser BRK () Call System in C
La fonction BRK () est utilisée pour modifier la quantité de mémoire allouée au processus de l'appelant. La modification est apportée en modifiant la valeur de rupture du processus à Addr et en fournissant le nombre nécessaire d'espace. La fonction BRK () est utilisée pour modifier la quantité de mémoire allouée au processus de l'appelant. À mesure que la valeur de rupture augmente, la quantité d'espace alloué aussi. L'espace nouvellement alloué a une valeur de 0 attribuée. Les valeurs de l'espace réaffecté ne sont pas vidé.
Conditions préalables
Exemple pour expliquer Brk () en C
Nous avons conçu l'exemple le plus simple pour élaborer le concept d'utilisation de l'appel du système BRK () en C. Créons un fichier avec le .Extension C en utilisant la commande nano dans le shell. Exécutez la commande ci-dessous annexée dans le shell:
$ nano brk1.cDans les systèmes d'exploitation Linux, GNU Nano est un simple éditeur de texte en ligne de commande. Il a toutes les fonctionnalités fondamentales que vous assumeriez d'un éditeur de texte, ainsi que quelques autres. Lors de l'exécution, le fichier sera ouvert dans l'éditeur GNU. Écrivez le code affiché dans votre fichier avec quelques modifications en fonction de vos exigences de travail.
Dans le code joint dans la capture d'écran ci-dessus, le nombre d'arguments est abrégé comme Argc, et les valeurs d'argument sont abrégées comme argv. Ce sont les variables qui sont transmises à la fonction principale lorsqu'il commence à fonctionner. Au moment de l'exécution, la fonction sysconf récupère les informations de configuration. Sysconf avec l'argument _SC PageSize est la bonne interface pour se renseigner sur la taille de la page. SBRK () augmente l'espace de stockage du programme en augmentant les octets. L'emplacement actuel de la rupture du programme peut être trouvé en appelant SBRK () avec un incrémentiel de 0. L'appel du système BRK () provoque la rupture du programme à la position du segment des données finales. Le segment de données final est arrondi jusqu'à la limite de la page suivante car la mémoire virtuelle est attribuée en unités de page.
La sortie du code peut être affichée en exécutant l'instruction ci-dessous dans l'ubuntu 20.04 Terminal du système d'exploitation Linux.
$ gcc brk1.cAu cas où GCC n'est pas installé dans votre Ubuntu 20.04 Système d'exploitation, installez-le en exécutant la commande ci-dessous annexe dans le shell:
$ sudo apt install gccLa sortie est affichée dans la capture d'écran ci-dessus présentant la taille de la page, l'adresse de rupture du programme, la taille de l'emploi, etc.
Conclusion
Cet article portait sur BRK () Call System in C en C Langage de programmation. Nous avons fait de notre mieux pour expliquer le concept d'appel du système BRK () dans le langage de programmation C et son utilisation. L'un des exemples a été expliqué en détail pour votre compréhension. La mise en œuvre de cet exemple avec les modifications requises vous apprendra l'utilisation des appels du système BRK () dans le langage de programmation C.