📄 sigio_app.c
字号:
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <fcntl.h>#include <unistd.h>#include <signal.h>#define DEVICE_FILENAME "/dev/sigio"int dev;//-------------------------------------------------------------------------------// 汲疙 : 荐青捞 吝瘤等 橇肺技辑甫 促矫 荐青茄促.// 概俺 : 绝澜// 馆券 : 绝澜//-------------------------------------------------------------------------------static void sigio_handler( int signo ){ char buff[128]; read( dev, buff, 1 ); printf( "SIGIO EVENT [%c]\n", buff[0] );}int main(){ struct sigaction sigact, oldact; int oflag; sigact.sa_handler = sigio_handler; sigemptyset( &sigact.sa_mask ); sigact.sa_flags = SA_INTERRUPT; if( sigaction( SIGIO, &sigact,&oldact ) < 0 ) { perror( "sigaction error : " ); exit(0); } dev = open( DEVICE_FILENAME, O_RDWR ); if( dev >= 0 ) { fcntl( dev, F_SETOWN,getpid() ); oflag = fcntl( dev, F_GETFL ); fcntl( dev, F_SETFL, oflag | FASYNC ); while(1) ; close(dev); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -