![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX环境高级编程学习笔记
Pris_oner
这个作者很懒,什么都没留下…
展开
-
文件I/O-001.lseek验证有些文件是否能lseek
/*lseek测试能否对标准输入设置偏移量*/#include #include #include //lseek需要int main(int argc,char const argv[]){ if(lseek(STDIN_FILENO,0,SEEK_CUR) == -1) { printf("cannot seek\n"); } else原创 2016-09-28 22:26:55 · 255 阅读 · 0 评论 -
文件I/O-009.set_fl()的实现
/*set_fl(int fd,int flag);将flag的文件状态标志加入fd*/#include #include #include #include /*将flags的文件标志加入fd*/void set_fl(int fd,int flags){ int val=fcntl(fd,F_GETFL,0); if(val == -1) { prin原创 2016-09-28 22:36:44 · 387 阅读 · 0 评论 -
文件I/O-008.fcntl返回文件标志并解析打印标志
/*fcntl()返回文件标志并解析打印文件标志*/#include #include #include #include #include int main(int argc,char const *argv[]){ int val; val=fcntl(atoi(argv[1]),F_GETFL,0); if(val == -1) { printf("原创 2016-09-28 22:36:00 · 371 阅读 · 0 评论 -
文件I/O-007.argc,argv[]
#include #include int main(int argc,char const *argv[]){ int i; printf("argc=%d\n",argc); for(i=0;i<argc;i++) { printf("argv[%d]=%s\n",i,argv[i]); }}/*./a.out zhang taoargc=3ar原创 2016-09-28 22:34:59 · 257 阅读 · 0 评论 -
文件I/O-006.没有文件时 创建新的,若有则APPEND打开
/*若没有文件,则创建新文件,若有文件,则APPEND打开笔记 循环打开同一个文件,每次都是不同的文件描述符,每次都有一个文件表项,指向同一个V节点表项*/#include #include #include #include int main(int argc,char const *argv[]){ int fd; int i; char tmp='a'; fo原创 2016-09-28 22:33:23 · 861 阅读 · 0 评论 -
文件I/O-005.标准输入,输出,错误都关联到屏幕
/*STDIN_FILENO STDOUT_FILENO STDERR_FILENO默认都是关联屏幕*/#include #include #include #include int main(int argc,char *argv[]){ char buf[10]={0}; read(STDERR_FILENO,buf,9);//会从屏幕读,保存在buf,相当于g原创 2016-09-28 22:31:55 · 381 阅读 · 0 评论 -
文件I/O-004.read和write复制文件 I O效率
/*文件复制*/#include #include #include #include #define BUFFSIZE 4096 //4//4Kint main(int argc,char *argv[]){ int n; char buf[BUFFSIZE]; while((n=read(STDIN_FILENO,buf,BUFFSIZE)) > 0) {原创 2016-09-28 22:30:39 · 266 阅读 · 0 评论 -
文件I/O-003.read和write复制文件
/*文件复制*/#include #include #include #include #define BUFFSIZE 4096 //4//4Kint main(int argc,char *argv[]){ int fd1,fd2; int n; char buf[BUFFSIZE]; fd1=open(argv[1],O_RDONLY); if (-1 =原创 2016-09-28 22:29:30 · 292 阅读 · 0 评论 -
文件I/O-002.lseek空洞文件
/*制造空洞文件,空洞的部分写为0od -c file.holeod观察文件的实际内容,od -c 以字符形式打印*/#include #include #include #include char buf1[]="abcdefghij";char buf2[]="ABCDEFGHIJ";int main(){ int fd; fd=open("file.hole原创 2016-09-28 22:28:20 · 282 阅读 · 0 评论 -
文件I/O-010.clr_fl()的实现
/*clr_fl(int fd,int flags);将flags的文件状态标志从fd中去除*/#include #include #include #include /*打印fd的文件标志*/void PrinFl(int fd){ int val=fcntl(fd,F_GETFL,0); if(val == -1) { printf("erro\n");原创 2016-09-28 22:37:44 · 449 阅读 · 0 评论