C语言中建立和删除文件连接的相关函数讲解
C语言link()函数:建立文件连接
头文件:
#include <unistd.h>
定义函数:
int link (const char * oldpath, const char * newpath);
函数说明:link()以参数newpath 指定的名称来建立一个新的连接(硬连接)到参数oldpath 所指定的已存在文件. 如果参数newpath 指定的名称为一已存在的文件则不会建立连接.
返回值:成功则返回0, 失败返回-1, 错误原因存于errno.
附加说明:link()所建立的硬连接无法跨越不同文件系统, 如果需要请改用symlink().
错误代码:
1、EXDEV 参数oldpath 与newpath 不是建立在同一文件系统.
2、EPERM 参数oldpath 与newpath 所指的文件系统不支持硬连接
3、EROFS 文件存在于只读文件系统内
4、EFAULT 参数oldpath 或newpath 指针超出可存取内存空间.
5、ENAMETOLLONG 参数oldpath 或newpath 太长
6、ENOMEM 核心内存不足
7、EEXIST 参数newpath 所指的文件名已存在.
8、EMLINK 参数oldpath 所指的文件已达最大连接数目.
9、ELOOP 参数pathname 有过多符号连接问题
10、ENOSPC 文件系统的剩余空间不足.
11、EIO I/O 存取错误.
范例:
/* 建立/etc/passwd 的硬连接为pass */#include <unistd.h>main() { link("/etc/passwd", "pass"); }
C语言unlink()函数:删除文件
头文件:
#include <unistd.h>
定义函数:
int unlink(const char * pathname);
函数说明:unlink()会删除参数pathname 指定的文件. 如果该文件名为最后连接点, 但有其他进程打开了此文件, 则在所有关于此文件的文件描述词皆关闭后才会删除. 如果参数pathname 为一符号连接, 则此连接会被删除。
返回值:成功则返回0, 失败返回-1, 错误原因存于errno
错误代码:
1、EROFS 文件存在于只读文件系统内。
2、EFAULT 参数pathname 指针超出可存取内存空间。
3、ENAMETOOLONG 参数pathname 太长。
4、ENOMEM 核心内存不足。
5、ELOOP 参数pathname 有过多符号连接问题。
6、EIO I/O 存取错误。
您可能感兴趣的文章:
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享
- 基于C语言fflush()函数的使用详解