您好,登錄后才能下訂單哦!
//流操作的緩沖區設置應用實例 //調用setbuf函數來修改標準輸入stdin的緩沖方式 #include <stdio.h> #include <stdlib.h> #define SIZE 512 //定義緩沖區大小 int main(int argc,char *argv[]) { char buf[SIZE]; //緩沖區 if(setvbuf(stdin, buf, _IONBF, SIZE) != 0) //將標準輸入的緩沖類型設為無緩沖 { perror("將標準輸入stdin的輸入設置為無緩沖失敗!\n"); //如果設置失敗 return 1; } printf("將標準輸入stdin的輸入設置為無緩沖成功!\n"); printf("stdin類型為"); //打印緩沖區信息 if(stdin->_flags & _IO_UNBUFFERED) //判斷標準輸入流對象的緩沖區類型 { printf("無緩沖\n"); } else if(stdin->_flags & _IO_LINE_BUF) { printf("行緩沖\n"); } else { printf("全緩沖\n"); } printf("緩沖區大小為 %ld\n", stdin->_IO_buf_end - stdin->_IO_buf_base); //打印緩沖區的大小 printf("文件描述符為 %d\n", fileno(stdin)); //輸出文件描述符 if(setvbuf(stdin,buf,_IOFBF,SIZE)!=0) { //將標準輸入的緩沖類型設為全緩沖,緩存大小為512 printf("將標準輸入stdin設置為全緩沖失敗!\n"); return 2; //出錯退出 } printf("修改標準輸入stdin的類型成功!\n"); printf("stdin類型為"); //打印緩沖區信息 if(stdin->_flags & _IO_UNBUFFERED) //判斷標準輸入流對象的緩沖區類型 { printf("無緩沖\n"); } else if(stdin->_flags & _IO_LINE_BUF) { printf("行緩沖\n"); } else { printf("全緩沖\n"); } printf("緩沖區大小為%ld\n", stdin->_IO_buf_end - stdin->_IO_buf_base); //打印緩沖區的大小 printf("文件描述符為%d\n", fileno(stdin)); //輸出文件描述符 return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。