⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asynctest.c

📁 linux driver edition
💻 C
字号:
/* * asynctest.c: use async notification to read stdin * * Tested with 1.2 on the x86 * Tested with 2.0 on the x86, Sparc and Alpha *   (but pipes don't generate async signals, tty's do) * * Actually, it should run with any Unix */#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <fcntl.h>int gotdata=0;void sighandler(int signo){    signal(SIGIO, &sighandler); /* reinstall yourself */    if (signo==SIGIO)        gotdata++;    return;}char buffer[4096];int main(int argc, char **argv){    int count;    signal(SIGIO, &sighandler); /* the dirty way, sigaction() is better */    fcntl(0, F_SETOWN, getpid());    fcntl(0, F_SETFL, fcntl(0, F_GETFL) | FASYNC);    while(1) {        /* this only returns if a signal arrives */        sleep(~0); /* infinite */        if (!gotdata)            continue;        count=read(0, buffer, 4096);        /* buggy: if avail data is more than 4kbytes... */        write(1,buffer,count);        gotdata=0;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -