- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux环境编程5文件教学讲义.ppt
dup 复制文件描述符. #include unistd.h int dup(int oldfd); int dup2(int oldfd, int newfd); oldfd 旧文件描述符. newfd 新文件描述符. 返回值 成功为新文件描述符;出错为- 1,错误值记录在errno. 注意 复制得到的文件描述符和旧文件描述符将指向同一个打开的文件。 dup函数返回的是最小未用的文件描述符,而dup2函数返回的是预先指定的文件描述符newfd。 如果newfd正在使用,则会先关闭newfd。如果newfd与oldfd一样,则关闭该文件正常返回 5.2 底层文件访问 flock 上锁或解锁一个文件. #include sys/file.h int flock(int fd, int operation); fd 文件描述符. operation 上锁或解锁方式: LOCK_SH 共享锁 LOCK_EX 独占锁 LOCK_UN 解锁 返回值 成功为0;出错为- 1,错误值记录在errno. 注意: 一个进程对一个文件只能有一个独占锁,但可以有多个共享锁。 上锁的作用只有在别的进程要对该文件上锁时才能表现出来。 对文件的操纵本身与锁其实没有什么关系!无论文件是否被上锁,用户都可以随便对文件进行正常情况下的任何操纵。 上锁文件的目的是为了同步多个进程之间的操作。 默认情况下,flock是阻塞式的。如果要进行非阻塞式调用, 应将operation参数与常量“LOCK_NB” 进行二进制“或”。 非阻塞式调用flock后,flock会立即返回-1,并且errno的值将为EWOULDBLOCK。 5.2 底层文件访问 link 对一个已经存在的文件建立新的硬链接。 #include unistd.h int link(const char *oldpath, const char *newpath); 5.3 链接文件的操作 oldpath 已存在的文件名. newpath 要新建的链接文件名. 返回值 若成功为0;若出错为- 1,错误值记录在errno. 注意: 新的链接文件newpath和已存在的文件oldpath应在同一个文件系统中。如果新的链接文件newpath已经存在,已存在的文件不会被覆盖。 symlink 创建符号链接文件。 #include unistd.h int symlink(const char *oldpath, const char *newpath); oldpath 已存在的文件名. newpath 要新建的符号链接文件名. 返回值 若成功为0;若出错为- 1,错误值记录在errno. 注意: 如果新的链接文件newpath已经存在,已存在的文件不会被覆盖。可存在悬浮链接。符号链接文件的权限和原文件的权限是无关的。 5.3 链接文件的操作 readlink 读取符号链接所指向的目标文件. #include unistd.h ssize_t readlink(const char *path, char *buf, size_t bufsiz); path 符号链接文件名. buf 用于存储获取到的信息(所指向的目标文件名)的缓冲区. bufsize 缓冲区大小. 返回值 若成功为实际写入缓冲区的字节数;若出错为-1,错误值记 录在errno. 5.3 链接文件的操作 unlink 从文件系统中删除一个文件名。 #include unistd.h int unlink(const char *pathname); pathname 要删除的文件的文件名. return value 若成功为0;若出错为-1,错误值记录在errno. 注意: 对于硬链接,如果被删除的文件名是引用一个文件的最后一个文件名,该文件最后将被删除。 对于符号链接,仅该符号链接被删除,而不会影响其指向的目标文件。 对于套接字(socket)、管道(fifo)或设备文件,文件名会被删除,但是已打开该文件的进程仍可继续使用它. 示例 5.3 链接文件的操作 unlink 5.2 底层文件访问 程序清单 5-9 ex_link.c 1 #include sys/types.h 2 #include sys/stat.h 3 #include unistd.h 4 #include stdio.h 5 #include stdlib.h 6 7 int main(int argc, char *argv[]) 8 { 9 char buf[512]; 10 11 if (argc != 4 argc != 3) goto
您可能关注的文档
- Dreamweaver网页制作基础教程项目三制作学校新闻教学教材.ppt
- Dreamweaver网页制作基础教程项目九CSS+Div美化网页2教学教材.ppt
- Dreamweaver网页制作基础教程项目九CSS+Div美化网页知识讲稿.ppt
- Dreamweaver网页制作基础教程项目二制作学校概况知识讲稿.ppt
- Dreamweaver网页制作基础教程项目五制作新闻动态讲解材料.ppt
- Dreamweaver网页制作基础教程项目八网页中的多媒体元素培训资料.ppt
- Dreamweaver网页制作基础教程项目六制作新闻动态详细信息讲解材料.ppt
- Dreamweaver网页制作基础教程项目十一为首页添加动态效果教学教材.ppt
- Dreamweaver网页制作基础教程项目十二整合网站知识讲稿.ppt
- Dreamweaver网页制作基础教程项目十校园网中的动态导航培训资料.ppt
- Linux环境编程6标准IO库幻灯片课件.ppt
- Linux环境编程7进程 和 与信号.ppt
- Linux环境编程8进程间通信教学讲义.ppt
- LTE无线网络优化项目教程03LTE网络优化的准备教程文件.pptx
- LTE无线网络优化项目教程04LTE网络的单站优化教程文件.pptx
- LTE无线网络优化项目教程05LTE网络的簇优化 和 与全网优化.pptx
- LTE无线网络优化项目教程07LTE网络话务统计优化培训资料.pptx
- LTE无线网络优化项目教程08LTE用户体验优化教程文件.pptx
- LTE无线网络优化项目教程LTE无线网络优化岗位及工作任务分析培训资料.pptx
- Lycopene幻灯片课件.ppt
文档评论(0)