unix环境高级编程--不带缓冲的IO操作
来源:互联网 发布:回复覆盖文件软件 编辑:程序博客网 时间:2024/04/28 05:04
最近在学习linux环境下的编程,《UNIX环境高级编程》自不用说,是经典中的经典了。下面贴出我的测试代码,测试环境ubuntu11.10, gcc编译通过
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>char buf1[] = "abcdefghij";char buf2[] = "ABCDEFGHIJ";void stdio_test();int main(int argc, char *argv[]){//iotest();stdio_test();return 0;}#define BUFFSIZE 4096void stdio_test(){int n;char buf[BUFFSIZE];while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0){if (write(STDOUT_FILENO, buf, n) != n){printf("write err\n");}}if (n < 0){printf("read err");}exit(0);}void iotest(){int fd = 0;int iRet = 0;char buf_to_read[30] = {0};fd = open("example", O_RDWR | O_CREAT, 00644);if (fd == -1){printf("open err\n");return;}if (write(fd, buf1, 10) != 10){printf("write buf1 err\n");return;}//这个地方lseek一定要有,否则下一步read会失败,目的是将文件偏移指针移到文件首,因为write会更改文件偏移指针if (lseek(fd, 0, SEEK_SET) == -1){printf("lseek err\n");return;}if (read(fd, buf_to_read, 30) == -1){printf("read err\n");return;}printf("read: %s\n", buf_to_read);exit(0);}
编译命令:gcc ioexample.c
编译成功后运行:./a.out
结果:自己试去吧。
水平有限,如果有朋友发现错误,欢迎留言交流。
转载请保留本文链接,如果觉得我的文章能帮到您,请顶一下。,谢谢。
- unix环境高级编程--不带缓冲的IO操作
- 《unix环境高级编程》有关不带缓冲io--1
- unix高级编程学习第一章2——不带缓冲的IO
- 《UNIX环境高级编程》笔记--标准IO缓冲
- Unix中的不带缓冲的文件IO
- 不带缓冲的IO
- unix c编程:不带缓冲的文件 I/O
- unix环境高级编程--IO
- unix环境高级编程-5.4-缓冲
- unix环境高级编程-5.4-缓冲
- 《unix环境高级编程》缓冲机制--2
- 带缓冲的IO和不带缓冲的IO
- 带缓冲IO与不带缓冲的IO
- unix环境高级编程笔记--高级IO
- unix环境高级编程-高级IO
- UNIX环境编程学习笔记(2)——文件I/O之不带缓冲的 I/O
- 不带缓冲io的理解
- 3、不带缓冲的文件IO
- Cloud App -- Baidu App Engine爬虫应用开发
- 【转】秒杀多线程第四篇 一个经典的多线程同步问题
- csdn第四课的感受
- Android ProGuard压缩,优化,混淆使用
- 【转】秒杀多线程第五篇 经典线程同步 关键段CS
- unix环境高级编程--不带缓冲的IO操作
- HTML WORD在线阅读
- 【转】秒杀多线程第六篇 经典线程同步 事件Event
- windows的快捷键 整理
- Gdb 我看过的最好的Gdb教程
- 网页爬虫
- 一个程序员的时间管理
- 遍历目录
- 旅途