Оқулық «Федералдық білім беруді дамыту институты»



Pdf көрінісі
бет93/220
Дата25.02.2022
өлшемі2,22 Mb.
#26438
түріОқулық
1   ...   89   90   91   92   93   94   95   96   ...   220
88 
 
 
фрагменттерін  экранға  шығару  тізбегі  буферлерді  экранға  тастау 
тізбегімен анықталады.  
 
 
Сурет-4.2.  Параллель  орындалатын  процестердің  қосу/шығару 
буферлерін тастау  
 
Бұл  мәселенің  алдын  алу  үшін  буферлеуді  сөндіріп  тастауға 
болады. Бұл деректерді шығару  командасын  орындау  мен  терминалда 
мәтіннің нақты шығуы арасында кешігуді минимизациялайды. 
 
Буферлеуді басқару setvbuf() атқарымы арқылы жүргізіледі: 
#include 
 
int setvbuf (FILE *stream, char *buf, int type, 
size_t size);
 
Аргумент  stream  буферлеу  режимі  өзгеретін  қосу/шығару 
ағынының  атауын  береді;  buf  буфер  сақталатын  жады  аймағына 
нұсқарды  белгілейді;  type  буферлеу  түрін  анықтайды  және  келесідей 
мәндерді қабылдай алады:
 
■ 
_IOFBF — толық буферлеу;
 
■ 
_IOLBF — жолма-жол буферлеу;
 
■ 
_IONBF — буферлеудің болмауы.
 
Size аргументі buf нұсқасы сілтенетін буфер өлшемін береді.  
 
Шығарудың  стандартты  ағынына  буферлеуді  өшіріп  тастау  үшін 
нольдік  өлшемге  ие  буферді  пайдаланып  және  төмендегідей  setvbuf() 
атқарымын шақыруға болады: 
 
setvbuf(stdout,(char*)NULL,_IONBF,0);
 
Бұл  атқарымды деректерді бір терминалға  шығаратын  процестерді 
туындататын  кез-келген  бағдарламаның  жұмысы  басталған  кезде 
шақыруға кеңес беріледі. 
 
Бұдан  басқа  дәл  setvbuf()  атқарымы  секілді,  осы  атқарым  секілді 
қызмет  ететін  setbuf()  атқарымы  бар,  ол  қажет  болса  буферлеу  типін 
өзгертпестен    буферді  сөндіріп  тастайды  немесе  жаңа  буферді  жасай 
алады.  Бұл атқарымның интерфейсі келесідей: 
 
#include 
 
void setbuf(FILE *stream, char *buf);
 
Сәйкесінше  буферлеуді  келесі  команда  арқылы  сөндіріп  тастауға 
болады: 
 
setbuf(stdout,(char*)NULL);
 


Достарыңызбен бөлісу:
1   ...   89   90   91   92   93   94   95   96   ...   220




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет