[318] 端末ドライバのバッファやstdinバッファの中身を覗くには?
投稿者:chisato
2007/02/20 02:13:25
select関数についての振舞いについて調べています。
(Win2k+Cygwin)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>
#include <curses.h>
#include <signal.h>
#include <unistd.h>
//===================
void session_loop(){
fd_set mask;
FD_ZERO(&mask);
FD_SET(0,&mask);
fd_set readOK;
int width=1;
char c;
printf("う\n");
while(1){
printf("あ\n");
readOK=mask;
printf("こwidth=%d\n",width);
select(width,(fd_set *)&readOK,NULL,NULL,NULL);
printf("け\n");
if ( FD_ISSET(0, &readOK ) ){
printf("い\n");
c=getchar(); //getcharはバッファリングあり関数
printf("c=%c\n",c);
printf("さ\n");
}
}
}
//=================
int main(void){
session_loop();
return 0;
}
というリストで
端末ドライババッファやstdinバッファの振舞いについて学習しています。
端末ドライバにバッファリングされた文字群がgetchar関数のread要求とかでstdinバッファに排出される様子や
stdinバッファの文字群がgetchar関数の読込み毎に減っていく様子を垣間見たく思っています。
端末ドライバのバッファやstdinバッファの中身を覗くにはどうすればいいのでしょうか?