//流操作的緩沖區(qū)設(shè)置應(yīng)用實(shí)例 //調(diào)用setbuf函數(shù)來修改標(biāo)準(zhǔn)輸入stdin的緩沖方式 #include <stdio.h> #include <stdlib.h> #define SIZE 512 //定義緩沖區(qū)大小 int main(int argc,char *argv[]) { char buf[SIZE]; //緩沖區(qū) if(setvbuf(stdin, buf, _IONBF, SIZE) != 0) //將標(biāo)準(zhǔn)輸入的緩沖類型設(shè)為無緩沖 { perror("將標(biāo)準(zhǔn)輸入stdin的輸入設(shè)置為無緩沖失敗!\n"); //如果設(shè)置失敗 return 1; } printf("將標(biāo)準(zhǔn)輸入stdin的輸入設(shè)置為無緩沖成功!\n"); printf("stdin類型為"); //打印緩沖區(qū)信息 if(stdin->_flags & _IO_UNBUFFERED) //判斷標(biāo)準(zhǔn)輸入流對象的緩沖區(qū)類型 { printf("無緩沖\n"); } else if(stdin->_flags & _IO_LINE_BUF) { printf("行緩沖\n"); } else { printf("全緩沖\n"); } printf("緩沖區(qū)大小為 %ld\n", stdin->_IO_buf_end - stdin->_IO_buf_base); //打印緩沖區(qū)的大小 printf("文件描述符為 %d\n", fileno(stdin)); //輸出文件描述符 if(setvbuf(stdin,buf,_IOFBF,SIZE)!=0) { //將標(biāo)準(zhǔn)輸入的緩沖類型設(shè)為全緩沖,緩存大小為512 printf("將標(biāo)準(zhǔn)輸入stdin設(shè)置為全緩沖失敗!\n"); return 2; //出錯(cuò)退出 } printf("修改標(biāo)準(zhǔn)輸入stdin的類型成功!\n"); printf("stdin類型為"); //打印緩沖區(qū)信息 if(stdin->_flags & _IO_UNBUFFERED) //判斷標(biāo)準(zhǔn)輸入流對象的緩沖區(qū)類型 { printf("無緩沖\n"); } else if(stdin->_flags & _IO_LINE_BUF) { printf("行緩沖\n"); } else { printf("全緩沖\n"); } printf("緩沖區(qū)大小為%ld\n", stdin->_IO_buf_end - stdin->_IO_buf_base); //打印緩沖區(qū)的大小 printf("文件描述符為%d\n", fileno(stdin)); //輸出文件描述符 return 0; }
當(dāng)前題目:[Linux流操作]使用setvbuf函數(shù)設(shè)置緩沖區(qū)的大小
新聞來源:http://aaarwkj.com/article8/pccjip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷、網(wǎng)站策劃、軟件開發(fā)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)