Sintassi
#includereSpiegazione della sintassi
La chiamata di sistema BRK () fa sì che il programma si rompa nella posizione del segmento di dati finali. Il segmento dei dati finali è arrotondato fino ai confini della pagina successiva poiché la memoria virtuale è allocata nelle unità di pagina. I tentativi di abbassare il valore di interruzione del programma al di sotto del suo valore iniziale comporteranno sicuramente un comportamento imprevisto, come un errore di segmentazione quando si tenta di accedere ai dati in parti ormai inaccessibili dei segmenti di dati inizializzati o non inizializzati. Diversi fattori determinano il limite superiore esatto per il luogo in cui è possibile inserire l'interruzione del programma.
Perché utilizzare la chiamata di sistema BRK () in C
La funzione BRK () viene utilizzata per modificare la quantità di memoria allocata al processo del chiamante. La modifica viene apportata alterando il valore di interruzione del processo ad ADDR e fornendo il numero necessario di spazio. La funzione BRK () viene utilizzata per modificare la quantità di memoria allocata al processo del chiamante. Man mano che il valore di pausa aumenta, aumenta anche la quantità di spazio assegnato. Lo spazio appena assegnato ha un valore di 0 assegnato. I valori dello spazio rialoccato non vengono svuotati se il programma prima diminuisce e successivamente aumenta il valore di interruzione.
Prerequisiti
Esempio per spiegare BRK () in C
Abbiamo progettato l'esempio più semplice per elaborare il concetto per l'utilizzo della chiamata di sistema BRK () in C. Creiamo un file con il .c estensione usando il comando nano nella shell. Eseguire il comando aggiunto di seguito nella shell:
$ nano brk1.CIn Linux Operating Systems, GNU Nano è un semplice editor di testo di comando. Ha tutte le funzionalità fondamentali che assumeresti da un editore di testo, oltre a alcune altre. Al momento dell'esecuzione, il file verrà aperto nell'editor GNU. Scrivi il codice visualizzato nel file con pochi emendamenti in esso a seconda delle esigenze di lavoro.
Nel codice allegato nello screenshot sopra, il conteggio degli argomenti è abbreviato come argc e i valori degli argomenti sono abbreviati come argv. Queste sono le variabili che vengono passate alla funzione principale quando inizia a funzionare. In runtime, la funzione SYSCONF recupera le informazioni di configurazione. sysconf con l'argomento _sc Pageize è l'interfaccia corretta per indagare sulla dimensione della pagina. SBRK () aumenta lo spazio di archiviazione del programma aumentando i byte. L'attuale posizione dell'interruzione del programma è disponibile chiamando SBRK () con un incrementale di 0. La chiamata di sistema BRK () fa sì che il programma si rompa nella posizione del segmento di dati finali. Il segmento dei dati finali è arrotondato fino al limite della pagina successiva perché la memoria virtuale è assegnata nelle unità di pagina.
L'output del codice può essere visualizzato eseguendo le istruzioni citate di seguito in Ubuntu 20.04 Terminale del sistema operativo Linux.
$ GCC BRK1.CNel caso in cui GCC non sia installato nel tuo Ubuntu 20.04 Sistema operativo, installalo eseguendo il comando aggiunto di seguito nella shell:
$ sudo APT Installa GCCL'output viene visualizzato nella schermata di presentazione di Pagina di Pagina sopra attaccata, Indirizzo di interruzione del programma, dimensioni di Char, ecc.
Conclusione
Questo articolo riguardava il linguaggio di sistema BRK () in linguaggio di programmazione C. Abbiamo fatto del nostro meglio per spiegare il concetto di sistema di sistema BRK () in linguaggio di programmazione C e il suo utilizzo. Uno degli esempi è stato spiegato in dettaglio per la tua comprensione. L'implementazione di questo esempio con le modifiche richieste ti insegnerà il sistema BRK () Call Utilizzo nel linguaggio di programmazione C.