UNIX系统中的I/O调度与定时器
在UNIX系统编程中,I/O调度和定时器是非常重要的部分。本文将介绍 select(2)
和 poll(2)
函数进行I/O调度的方法,以及 sleep(3)
等定时器函数的使用。
1. 使用 select(2)
函数进行I/O调度
select(2)
函数可以帮助我们处理多个文件描述符的I/O操作。下面是一个使用 select(2)
函数的示例程序:
/* select.c */
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
static void
quit(int rc,const char *fmt,...) {
va_list ap;
if ( errno != 0 ) /* Report errno */
fprintf(stderr,"%s: ",strerror(errno));