亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

信號驅動的IO

2024-06-28 13:21:23
字體:
來源:轉載
供稿:網友
信號驅動的IO

(1)client1,基于SIGIO的寫法:

 1 #include <sys/types.h> 2 #include <sys/stat.h> 3 #include <fcntl.h> 4 #include <unistd.h> 5 #include <signal.h> 6  7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <errno.h>10 11 #define BUFSIZE 12812 13 static int fdr;14 static int fdw;15 16 static void handler(int unuse)17 {18     int ret;19     char buf[BUFSIZE];20 21     ret = read(fdr, buf, BUFSIZE);22     if (ret == -1) {23         return;24     }25     if (ret == 0) {26         exit(0);27     }28     write(1, "/033[31m", 5);29     write(1, buf, ret);30     write(1, "/033[0m", 4);31 }32 33 int main(void)34 {35     int ret;36     char buf[BUFSIZE];37     long flags;38 39     signal(SIGIO, handler);40 41     fdr = open("f1", O_RDONLY);42     if (fdr == -1) {43         perror("f1");44         goto open_fdr_err;45     }46 47     fdw = open("f2", O_WRONLY);48     if (fdw == -1) {49         perror("f2");50                 goto open_fdw_err;51     }52 53     flags = fcntl(fdr, F_GETFL);54     flags |= O_ASYNC;55     fcntl(fdr, F_SETFL, flags);56 57     fcntl(fdr, F_SETOWN, getpid());58 59     while (1) {60         ret = read(0, buf, BUFSIZE);61         if (ret == -1) {62             if (errno == EINTR) {63                 continue;64             }65             perror("read()");66             break;67         }68         if (ret == 0) {69             break;70         }71         write(fdw, buf, ret);72     }73 74     close(fdw);75     close(fdr);76 77     return 0;78 79 80     close(fdw);81 open_fdw_err:82     close(fdr);83 open_fdr_err:84     return 1;85 }
View Code

client1,基于自定義信號的寫法:

 1 #define _GNU_SOURCE 2  3 #include <sys/types.h> 4 #include <sys/stat.h> 5 #include <fcntl.h> 6 #include <unistd.h> 7 #include <signal.h> 8  9 #include <stdio.h>10 #include <stdlib.h>11 #include <errno.h>12 13 #define BUFSIZE 12814 15 static int fdr;16 static int fdw;17 18 static void handler(int unuse)19 {20     int ret;21     char buf[BUFSIZE];22 23     ret = read(fdr, buf, BUFSIZE);24     if (ret == -1) {25         return;26     }27     if (ret == 0) {28         exit(0);29     }30     write(1, "/033[31m", 5);31     write(1, buf, ret);32     write(1, "/033[0m", 4);33 }34 35 int main(void)36 {37     int ret;38     char buf[BUFSIZE];39     long flags;40 41     signal(SIGUSR1, handler);42 43     fdr = open("f1", O_RDONLY);44     if (fdr == -1) {45         perror("f1");46         goto open_fdr_err;47     }48 49     fdw = open("f2", O_WRONLY);50     if (fdw == -1) {51         perror("f2");52                 goto open_fdw_err;53     }54 55     flags = fcntl(fdr, F_GETFL);56     flags |= O_ASYNC;57     fcntl(fdr, F_SETFL, flags);58 59     fcntl(fdr, F_SETOWN, getpid());60     fcntl(fdr, F_SETSIG, SIGUSR1);61 62     while (1) {63         ret = read(0, buf, BUFSIZE);64         if (ret == -1) {65             if (errno == EINTR) {66                 continue;67             }68             perror("read()");69             break;70         }71         if (ret == 0) {72             break;73         }74         write(fdw, buf, ret);75     }76 77     close(fdw);78     close(fdr);79 80     return 0;81 82 83     close(fdw);84 open_fdw_err:85     close(fdr);86 open_fdr_err:87     return 1;88 }
View Code

(2)client2:

 1 #include <sys/types.h> 2 #include <sys/stat.h> 3 #include <fcntl.h> 4 #include <signal.h> 5 #include <unistd.h> 6  7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <errno.h>10 11 #define BUFSIZE 12812 13 static int fdr;14 static int fdw;15 16 static void handler(int unuse)17 {18     int ret;19     char buf[BUFSIZE];20 21     ret = read(fdr, buf, BUFSIZE);22     if (ret == -1) {23         return;24     }25     if (ret == 0) {26         exit(0);27     }28     write(1, "/033[31m", 5);29     write(1, buf, ret);30     write(1, "/033[0m", 4);31 }32 33 int main(void)34 {35     int ret;36     char buf[BUFSIZE];37     long flags;38 39     signal(SIGIO, handler);40 41     fdw = open("f1", O_WRONLY);42     if (fdw == -1) {43         perror("f1");44                 goto open_fdw_err;45     }46 47     fdr = open("f2", O_RDONLY);48     if (fdr == -1) {49         perror("f2");50         goto open_fdr_err;51     }52 53     flags = fcntl(fdr, F_GETFL);54     flags |= O_ASYNC;55     fcntl(fdr, F_SETFL, flags);56 57     fcntl(fdr, F_SETOWN, getpid());58 59     while (1) {60         ret = read(0, buf, BUFSIZE);61         if (ret == -1) {62             if (errno == EINTR) {63                 continue;64             }65             perror("read()");66             break;67         }68         if (ret == 0) {69             break;70         }71         write(fdw, buf, ret);72     }73 74     close(fdr);75     close(fdw);76 77     return 0;78 79 80     close(fdr);81 open_fdr_err:82     close(fdw);83 open_fdw_err:84     return 1;85 }
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品国产精品大乳美女| 久久夜色撩人精品| 久久精品国产成人| 日韩精品极品毛片系列视频| 2019国产精品自在线拍国产不卡| 国产精品一区二区av影院萌芽| 成人在线国产精品| 黑人精品xxx一区一二区| 欧美电影《睫毛膏》| 国产精品影片在线观看| 国产97在线|亚洲| 国产日韩亚洲欧美| 国产精品男人爽免费视频1| 亚洲精品久久久久| 狠狠久久五月精品中文字幕| 国产精品久久久久国产a级| 97在线观看视频国产| 欧美成人免费观看| 欧美成人网在线| 欧美黑人性视频| 国产啪精品视频网站| 久久不射热爱视频精品| 2019最新中文字幕| 日韩在线观看av| 亚洲第一天堂av| 国产日韩精品入口| 亚洲综合小说区| 欧美极品美女视频网站在线观看免费| 欧美在线xxx| 欧美电影在线观看高清| 91精品国产自产在线观看永久| 欧美裸体xxxx极品少妇软件| 欧美性猛交xxx| 精品中文字幕久久久久久| 在线观看中文字幕亚洲| 国产精品91久久久| 精品久久久久久电影| 欧美在线影院在线视频| 亚洲激情成人网| 欧美另类69精品久久久久9999| 亚洲影院污污.| 欧美成人手机在线| 欧美日韩亚洲激情| 欧美成年人视频| 亚洲国产黄色片| 九九精品视频在线| 精品日韩中文字幕| 久久中文精品视频| 综合久久五月天| 欧美电影免费观看| 欧美中文字幕第一页| 亚洲精品少妇网址| 欧美电影在线观看完整版| 国产精品日日做人人爱| 青青草国产精品一区二区| 国产精品伦子伦免费视频| 精品亚洲一区二区三区| 欧美福利小视频| 久久综合国产精品台湾中文娱乐网| 久久久久久久色| 亚洲一区第一页| 精品久久久久久久久国产字幕| 国产精品久久久久aaaa九色| 亚洲成人精品av| 亚洲免费福利视频| 国模精品视频一区二区三区| 伊人久久久久久久久久| 亚洲香蕉成人av网站在线观看| 夜夜嗨av色综合久久久综合网| 岛国av一区二区在线在线观看| 日韩精品一二三四区| 97热在线精品视频在线观看| 国产精品视频午夜| 97热在线精品视频在线观看| 亚洲视频777| 日韩av免费在线看| 欧美日韩精品在线播放| 亚洲天堂男人天堂女人天堂| 精品日韩美女的视频高清| 欧美黑人xxxx| 亚洲精品在线观看www| 日韩美女av在线免费观看| 日韩在线欧美在线国产在线| 国产日韩欧美成人| 亚洲欧美日韩区| 国产精品丝袜一区二区三区| 成人久久久久久| 久久亚洲精品国产亚洲老地址| 久久精品在线视频| 久久久久久久久久久免费| 91精品美女在线| 亚洲免费人成在线视频观看| 亚洲天天在线日亚洲洲精| 欧洲永久精品大片ww免费漫画| 亚洲色图第三页| 亚洲精品不卡在线| 欧美日韩一区二区在线播放| 亚洲人午夜色婷婷| 日韩电视剧在线观看免费网站| 狠狠久久五月精品中文字幕| 欧美激情喷水视频| 一区二区三区国产视频| 91最新在线免费观看| 日韩精品在线观| 91免费在线视频网站| 国产成人精品综合久久久| 国产精品观看在线亚洲人成网| 欧美视频中文在线看| 欧美午夜片欧美片在线观看| 中文字幕亚洲无线码a| 日韩不卡在线观看| 91色视频在线观看| 91av中文字幕| 日韩亚洲综合在线| 亚洲日韩中文字幕在线播放| 欧美性一区二区三区| 国内伊人久久久久久网站视频| 国产精品羞羞答答| 色婷婷av一区二区三区久久| 国产欧美日韩最新| 亚洲欧美制服丝袜| 日韩中文字幕不卡视频| 久久久久国色av免费观看性色| 欧美最猛性xxxxx(亚洲精品)| 色www亚洲国产张柏芝| 日韩高清电影免费观看完整| 欧美日韩第一页| 久久久久久12| 午夜精品免费视频| 韩国美女主播一区| 97超级碰碰碰| 亚洲美女性生活视频| 怡红院精品视频| 亚洲欧美日韩精品久久| 久久久久久高潮国产精品视| 国产精品久久精品| 国产成人精品久久二区二区| 欧美专区福利在线| 欧美激情久久久| 美女视频黄免费的亚洲男人天堂| 成人天堂噜噜噜| 国产精品jvid在线观看蜜臀| 国产经典一区二区| 国产成人亚洲综合91| 国产欧美亚洲精品| 国产视频久久久久久久| 日韩精品中文字幕在线| 亚洲天堂视频在线观看| 久久久噜久噜久久综合| 久久久久久久国产精品视频| 成人久久久久爱| 大桥未久av一区二区三区| 亚洲欧美成人网| 在线亚洲欧美视频| 国产精品视频不卡| 欧美精品18videos性欧美| 国内免费久久久久久久久久久| 亚洲欧美日韩爽爽影院| 午夜精品久久久久久久男人的天堂| 国产美女久久精品香蕉69| 美女撒尿一区二区三区| 国产啪精品视频| 亚洲人精选亚洲人成在线| 91久久久久久久久久|