总体概述:在上一篇文章中介绍了如何实现软链接命令并创建软链接,在这一章我们介绍如何编写程序,实现删除链接文件程序的方法,需要用到lstat,unlink函数和S_ISLNK宏。函数语法:lstat函数
总体概述:
在上一篇文章中介绍了如何实现软链接命令并创建软链接,在这一章我们介绍如何编写程序,实现删除链接文件程序的方法,需要用到lstat,unlink函数和S_ISLNK宏。
函数语法:
lstat函数语法:int lstat(const char *pathname, struct stat *statbuf);
unlink函数语法:int unlink(const char *pathname);
函数作用:
lstat函数的作用:获取指定文件的信息。
unlink函数的作用:从文件系统中删除一个名称。
S_ISLNK宏:判断是否为链接文件
参数介绍:
lstat函数参数介绍:
- 输入参数:pathname => 文件路径名。
- 输出参数:buf => 文件信息缓存
- 返回值:成功:返回 0;失败:返回 -1。
unlink函数参数介绍:
- 输入参数:pathname => 文件路径名。
- 返回值:成功:返回 0;失败:返回 -1。
代码示例:
<span>#<span>include</span> <span></span></span><span>#<span>include</span> <span></span></span><span>#<span>include</span> <span></span></span><span>#<span>include</span> <span></span></span><span>#<span>include</span> <span></span></span><span>#<span>include</span> <span></span></span><span><span>int</span> <span>m<strong>ai</strong>n</span><span>(<span>int</span> argc, <span>char</span> **argv)</span></span>{ <span>if</span> (argc != <span>2</span>) { <span>printf</span>(<span>\"usage: %s .\\n\"</span>, argv[<span>0</span>]); <span>return</span> <span>-1</span>; } <span><span>struct</span> <span>stat</span> <span>st</span>;</span> <span>const</span> <span>char</span> *pathname = argv[<span>1</span>]; <span>if</span> (lstat(pathname, &st) == <span>-1</span>) { <span>printf</span>(<span>\"get file %s information failed, %s.\\n\"</span>, \\ pathname, strerror(errno)); <span>return</span> <span>-1</span>; } <span>if</span> (!S_ISLNK(st.st_mode)) { <span>printf</span>(<span>\"%s is not a symbolic link file.\\n\"</span>, pathname); <span>return</span> <span>-1</span>; } <span>return</span> unlink(pathname);}
使用方法:
$ mkdir ~<span>/clanguage && cd ~/clanguage</span>$ touch unlink.c 注:创建并拷贝代码到unlink.c,保存退出。$ gcc -o unlink unlink.c$ touch hello.txt$ ./symlink hello.txt world.txt$ ./unlink world.txt
运行效果:
运行效果图
本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。