Linux 文件符操作
2017-01-23 21:52
253 查看
2.3 读写文件
fd = open();write(); // Linux
读
int fd; fd=open(argv[1],O_RDWR); if(-1==fd){ perror("open"); return -1; } int ret; ret = read(); // 返回0 if(ret<=0){ perror("read"); } puts();
// 循环读取
bzero(file,sizeof(c))
write(fd,c,sizeof(c)) // 写到屏幕
2.5 文件当前位置
ftell() // c 返回当前位置lseek(int fd,off_t offset, int whence); // Linux
int fseek(FILE *stream,long offset,int oregin)
%!xxd // 以16进制查看
2.7 文件的复制
内核数据拷贝 、、 接口dup 复制到下一块当前最小
引用计数 ARC==0 时关闭 free 销毁
自动垃圾回收 GC
0 only_read
1 only_write
int dup(int oldfd); // 默认最小位置
int dup2(itn oldfd,int newfd); // 指定到已经打开的位置
不同之处newfd在执行dup2之前会被关闭,最后返回newfd
在读同一个描述符时候需要偏移,
lseek(,0,SEEK_SET);
两个指向同一块的时候,需要偏移才能读出。存放了两个位置,内容只有一份。
2.9 I/O 多路转接
mkfifo test.fifo // 创建管道文件1.管道通信,等两端信息进入管道
利用fork机制建立,
// case 1 pipe 读取内容
管道半双工:
1. 写端不阻塞
断开管道:
read 返回值为0,结束
while(memset(buf,0,sizeof(buf)),read(STDIN_FILENO,buf,sizeof(buf)){
write(fdw,buf,strlen(buf)-1); // \n
}
死锁问题:
管道传参一致,避免死锁
while 实现循环读取
int select(int maxfd,fd_set *readset,); // 监管
// 定义集合
FD_ZERO(&);
相关文章推荐
- 在Linux下如何驱动联想D-link DFE-530TX(也叫D-link DFE-530TX Rev B)网卡
- Linux -安装PHP7
- crontab命令简介 linux定时设置 Cron实现自动任务
- 硬件全攻略--MODEM linux内猫配置 驱动软猫
- linux 无盘安装 没有光驱 无光驱 rawrite ftp安装
- 向Linux进军(X-Window配置指南)
- 大家来做linux调试日志 (tomcat jsp server 配置方法)
- 高效配置Linux代理服务器――Squid
- linux 下 squid 安装日志
- Linux系统中的入侵检测
- LINUX 下播放 DVD 全攻略 (关键字 DVD-ROM LiViD fifo OMS)
- Linux 指令篇(1)
- Linux下声卡通
- 聆听自由的声音----Linux下声卡驱动软件ALSA的安装与配置
- 如何用Linux安装TCP/IP路由器 route subnet arp
- Linux下声卡驱动软件ALSA的安装与配置
- [TextMate for Ubuntu Linux]
- Linux下C开发工具介绍 GCC gdb xxgdb calls calltree cproto indent gprof
- linux 内核模块 和 驱动程序的编写(1)
- Linux 内核配置及编译简介