首页 / LINUX / linux中的文件IO笔记 3
linux中的文件IO笔记 3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux中的文件IO笔记 3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2754字,纯文字阅读大概需要4分钟。
内容图文
![linux中的文件IO笔记 3](/upload/InfoBanner/zyjiaocheng/965/f4ddb9a44b7f4060ac1f12b5bf15f454.jpg)
3.1.11 文件描述符的复制1
1、dup和dup2函数介绍
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fcntl.h> /* Obtain O_* constant definitions */
#include <unistd.h>
int dup3(int oldfd, int newfd, int flags);
dup系统调用有一个特定,就是不能指定 复制后得到的fd的数字是多少,而是由操作系统自动分配的。
dup返回的fd和原来的oldfd都指向oldfd打开的动态文件,操作这两个fd实际操作的都是oldfd打开的那个文件,实际上构成了文件共享。
是分别写还是接续写?
3、使用dup的缺陷分析
dup并不能指定分配的新的文件描述字符。
4、练习
close(1)关闭标准输出,printf的内容就看不到了。
这时候使用dup就可以将输出绑定到标准输出
使用;close和dup配合进行文件的重定位。
3.1.12 文件描述符的复制2
1、使用dup2进行文件描述符复制
dup2和dup的 作用一样,都是复制一个新的文件描述符,但是dup2允许用户指定新的文件描述字符。
2、dup2共享文件交叉写入测试
dup2复制的文件描述符,和原来的文件描述符虽然数字上不一样,但是这两个指向同一个打开的文件。
交叉写入的时候,结果是接续写(实验证明的)。
3、命令行中重定位命令
1、linux中的shell命令执行后,打印结果都是默认进入标准输出的。
(本质上这些命令譬如ls pwd 都是调用printf进行打印的)
2、能否想办法把ls,pwd等命令输出结果重定位到一个文件中去,实际上linux中断支持一个重定位文件符号>很简单可以做到这一点。
ls > 1.txt 把ls 输出结果重定位到1.txt中去
3、利用 open+close+dup,open打开一个文件2.txt.
3.1.13 fcntl函数介绍
1、fcntl原型与作用
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd, ... /* arg */ );
多功能工具箱,fd:文件标识符
一个多功能文件管理工具箱,接收2个参数+1个变参
cmd:表示要进行那个命令操作
2、fcntl的常用cmd
F_DUPFD复制文件描述符
F_DUPFD返回的是>= arg最小的哪一个数字。
3.1.14 标准IO库的介绍
1、标准IO和文件IO有什么区别
标准IO是C库函数
文件IO是linux系统的API
C 语言库函数是由API封装而来的,库函数内部也是通过调用API来完成操作的。
但是库函数多了一层封装,所以比API更加女好用一些。
库函数比API 函数更加有优势:API在不同操作系统之间是不能通用的,但是C库函数在不同
操作系统中几乎是一样的。
性能和易用性上看,C库函数一般要好一些。
2、常用标准IO函数介绍
常见的标准IO库函数有:fopen fclose fwrite fread ffulsh、fseek
3、一个简单的标准IO读写文件实例
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fd, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
内容总结
以上是互联网集市为您收集整理的linux中的文件IO笔记 3全部内容,希望文章能够帮你解决linux中的文件IO笔记 3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。