UNIX不带缓存的IO函数

本文介绍了使用五个核心函数(open、read、write、lseek、close)进行UNIX文件I/O操作的方法,并提供了一个简单的示例程序,该程序可以打开指定文件并读取前1024字节的内容。

   大多数UNIX文件I/O操作只需用到5个函数:open、read、write、lseek、close,上述五个函数经常被称为不带缓存的I/O;不带缓存指的是每个read和write都调用内核中的一个系统调用;这些不带缓存的I/O函数不是ANSI C的组成部分,但是是POSIX.1和XPG3的组成部分。
  下面我们来看看这些函数的应用,打开一个文件,读出1024字节,并输出内容。

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <fcntl.h>
 4 #include <unistd.h>
 5 int main(int argc, char* argv[])
 6 {
 7     int fd, nbytes;
 8     char buf[1025];
 9     
10     if(argc < 2)
11     {
12         printf("Usage: %s filename\n", argv[0]);
13         exit(0);
14     }
15     if((fd = open(argv[1], O_RDONLY)) < 0)
16     {
17         printf("Error:open %s failed\n", argv[1]);
18         exit(0);
19     }
20     if((nbytes = read(fd, buf, sizeof(buf)) - 1) < 0)
21     {
22         printf("Error:read %s failed\n", argv[1]);
23         exit(0);
24     }
25     buf[1024] = 0;
26     printf("Read %d from %s\n", nbytes, argv[1]);
27     printf("%s\n",buf);
28     return 0;
29 }

 

转载于:https://www.cnblogs.com/null00/archive/2008/11/04/2065104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值