Advanced Programming in UNIX Environment Episode 16
来源:互联网 发布:ug10钻孔编程 编辑:程序博客网 时间:2024/05/21 21:32
stat结构成员st_size表示以字节为单位的文件长度。此字段值对普通文件、目录文件和符号链接有意义。
truncate和fruncate是文件截断函数。
#include <unistd.h>int truncate(const char *pathname, off_t length);int ftruncate(int fd, off_t length);
这两个函数将一个现有文件长度截断为length。
link、linkat、unlink、unlinkat和remove
任何一个文件可以有多个目录项指向其i节点。创建一个指向现有文件的链接方法是使用link函数或linkat函数。
#include <unistd.h>int link(const char *existingpath, const char *newpath);int linkat(int efd, const char *existingpath, int nfd, const char *newpath, int flag);
这两个函数创建一个新目录项newpath,他引用现有文件existingpath。如果newpath已经存在,则返回出错。只创建newpath中的最后一个分量,路径中的其他部分应当已经存在。
#include <unistd.h>int unlink(const char *pathname);int unlinkat(int fd, const char *pathname, int flag);
删除目录项,并将有pathname所引用文件的链接计数减1。如果对该文件还有其他链接,则仍可能通过其他链接访问该文件的数据。如果出错,则不对该文件做任何更改。
#include "apue.h"#include <fcntl.h>int main(void){ if(open("tempfile",O_RDWR)<0) err_sys("open error"); if(unlink("tempfile")<0) err_sys("unlink error"); printf("file unlinked\n"); sleep(15); printf("done\n"); return 0;}
我们也可以用remove函数解除对一个文件或目录的链接。对于文件,remove的功能与unlink相同。对于目录,remove的功能与rmdir相同。
阅读全文
0 0
- Advanced Programming in UNIX Environment Episode 16
- Advanced Programming in Unix Environment Episode 1
- Advanced Programming in Unix Environment Episode 2
- Advanced Programming in UNIX Environment Episode 3
- Advanced Programming in UNIX Environment Episode 4
- Advanced Programming in UNIX Environment Episode 5
- Advanced Programming in UNIX Environment Episode 6
- Advanced Programming in UNIX Environment Episode 7
- Advanced Programming in UNIX Environment Episode 8
- Advanced Programming in UNIX Environment Episode 9
- Advanced Programming in UNIX Environment Episode 10
- Advanced Programming in UNIX Environment Episode 11
- Advanced Programming in UNIX Environment Episode 12
- Advanced Programming in UNIX Environment Episode 13
- Advanced Programming in UNIX Environment Episode 14
- Advanced Programming in UNIX Environment Episode 15
- Advanced Programming in UNIX Environment Episode 17
- Advanced Programming in UNIX Environment Episode 18
- Linux私房菜学习-第6章Linux文件权限与目录
- Springboot No EntityManager with actual transaction available for current thread
- LeetCode.94 Binary Tree Inorder Traversal
- MATLAB内置常见函数
- 回文数判定
- Advanced Programming in UNIX Environment Episode 16
- Visual Studio Code编辑器的实用插件和工作中实用的技巧
- 代码审查“查”什么?
- javaSwing--容器
- 0/1背包(回溯法求解)-算法设计与分析
- 趋势科技2016校招:下面程序一共会在屏幕上输出多少个“-” ?
- codeforces 853B 思维 差分
- Python小练习(1)
- 学生选择问题(回溯)-算法设计与分析