日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

link、symlink、readlink、unlink函数的使用

發布時間:2023/11/30 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 link、symlink、readlink、unlink函数的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include <unistd.h>

int link(const char *oldpath, const char *newpath);

作用:創建一個硬鏈接???? ?0成功?? -1 失敗

//代碼

#include <stdio.h> #include <stdlib.h> #include <unistd.h>int main(int argc, char* argv[]) {if(argc < 3){printf("a.out oldpath newpath\n");exit(0);}int ret = link(argv[1], argv[2]);if(ret == -1){perror("link");exit(1);}return 0; }

#include <unistd.h>

int symlink(const char *oldpath, const char *newpath);

作用:創建一個軟鏈接??? 0成功? -1失敗

?

#include <unistd.h>

ssize_t readlink(const char *path, char *buf, size_t bufsiz);

作用:讀一個軟鏈接文件其本身的內容(即所鏈接的那個文件的文件路徑或文件名),不是去讀文件內容,將內容讀到buff緩沖區(由用戶維護)。 注意:該函數只能用于軟鏈接文件。

返回值:成功則返回讀取的字節數;失敗則為-1。

//代碼

#include <stdio.h> #include <stdlib.h> #include <unistd.h>int main(int argc, char* argv[]) {if(argc < 2){printf("a.out softlink\n");exit(1);}char buf[512];int ret = readlink(argv[1], buf, sizeof(buf));if(ret == -1){perror("readlink");exit(1);}buf[ret] = 0; // 必須的,賦值為0或\0表示字符串結束符,該位及以后的字符不再輸出,如果需要輸出,可以采用循環一個一個的輸出。printf("buf = %s\n", buf);return 0; }

#include <unistd.h>

int unlink(const char *pathname);

作用:1. 如果是符號鏈接,刪除符號鏈接(即直接刪除該文件);2. 如果是硬鏈接,硬鏈接數減1(簡化的FCB),當減為0時,釋放數據塊和inode;3. 如果文件硬鏈接數為1,但有進程已打開該文件,并持有文件描述符,則等該進程關閉該文件時,kernel才真正去刪除該文件。第3個作用可以讓臨時文件關閉之后自己把自己刪除掉利用該特性創建臨時文件,先opencreat創建一個文件,馬上unlink此文件。unlink后,所有使用該文件的進程結束以后,文件才會被刪除,這些進程在未結束時,unlink刪除的只是文件的目錄項(此時文件已經具有了被刪除的條件,硬鏈接數為0),文件本身的內容即inode未被刪除。以如下代碼為例。

返回值:0成功? -1失敗

//臨時文件自己把自己干掉

[root@localhost work]# vim tmp.c

#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h>int main( ) {int fd;fd = open( "unlink",O_RDWR | O_CREAT,0664); //沒有就創建該文件if( fd == -1 ){perror("open file");exit(1);}//打開后立即unlink文件(刪除文件)int fd1;fd1==unlink("unlink");if( fd1 == -1 ){perror("unlink file");exit(1);}//為了證明該文件確實被存在過,則在關閉文件之間進行讀、寫和打印測試int fd2;fd2 = write(fd,"hello unlink!\n",14);if( fd2 == -1 ){perror("write file");exit(1);}int ret;ret = lseek(fd,0,SEEK_SET); //將文件讀寫指針置于開頭才能讀if( ret == -1 ){perror("lseek file");exit(1);}int fd3;char buff[15]={0};fd3 = read(fd,buff,15);if( fd3 == -1 ){perror("read file");exit(1);}int fd4;fd4 = write(1,buff,fd3);if( fd4 == -1 ){perror("write file");exit(1);}int ret1=close(fd);if( ret1 == -1 ){perror("close file");exit(1);}return 0; }

[root@localhost work]# ./tmp

hello unlink!

[root@localhost work]# ls?????? ??//可見,沒有unlink文件,自己把自己刪除了

english.txt? ls-l.c? stat.c? statuse? statuse.c? tmp? tmp.c

總結

以上是生活随笔為你收集整理的link、symlink、readlink、unlink函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 西西4444www大胆无码 | 极品淫少妇 | 日韩一级在线播放 | 亚洲高清在线免费观看 | 亚洲一区二区三区高清 | 蜜臀av性久久久久蜜臀aⅴ | 免费一级特黄 | 香蕉视频在线免费播放 | 国产午夜在线 | 国产欧美日韩视频在线观看 | 国产精品秘入口18禁麻豆免会员 | 日韩美av| 永久在线 | 久久精品久久99 | 中文字幕三区 | 欧洲女女同性videoso | 久久22 | 国产一级片自拍 | 在线一区观看 | 精品午夜一区二区三区 | 日韩一二三四五区 | 91亚洲精品久久久蜜桃借种 | 精品国产污污免费网站入口 | 欧美大胆a视频 | 成人中文在线 | 亚洲欧洲日韩综合 | 午夜精品视频在线观看 | a级黄色网 | 欧美在线影院 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 精品天堂 | 少妇被爽到高潮动态图 | 肥熟女一区二区三肥熟女 | 亚洲熟女乱色综合亚洲av | 国产在线成人精品午夜 | 激情国产精品 | 日韩在线一卡二卡 | 久热中文| chinese xxxx videos andvr | 久久成人亚洲 | 涩涩涩999 | 一级黄色免费看 | 黑人巨大精品欧美一区二区 | 日韩亚洲欧美在线 | 亚洲偷偷| 午夜影院黄色 | 天天干夜夜做 | 欧美在线性视频 | 91爱爱网| 成人中文字幕在线观看 | 亚洲欧美另类视频 | 国产h视频在线观看 | 午夜肉伦伦 | 青青草免费公开视频 | 精品亚洲永久免费 | 日韩欧美国产另类 | japanese国产打屁股网站 | 国产 日韩 欧美 精品 | 污污的视频在线免费观看 | а√天堂www在线天堂小说 | 欧美区一区二区三 | 国产粉嫩呻吟一区二区三区 | 337p亚洲精品色噜噜噜 | 国产高清视频在线观看 | 国产伦精品一区二区三区免.费 | 九月婷婷| 朝桐光一区二区三区 | 一区二区黄色 | 亚欧激情 | 欧美国产精品久久 | 日本高清视频一区 | 国产一区免费视频 | 天天爽天天爱 | 日韩 国产 欧美 | 亚洲欧美日本另类 | 黄色一二三区 | 亚洲开心网 | 日本真人做爰免费视频120秒 | 办公室大战高跟丝袜秘书经理ol | 97av超碰| 成年人免费在线观看网站 | 9i在线看片成人免费 | 3p视频在线观看 | 欧美黄色a级大片 | 国产电影一区二区三区爱妃记 | 日韩视频福利 | av噜噜在线观看 | 欧美视频一区 | 99有精品 | 久久精品福利 | 九九久久久 | 在线中文字幕亚洲 | 国产精品久久伊人 | 九九在线观看高清免费 | 日日操天天射 | 一区二区三区中文字幕 | 五月天综合网站 | 光棍影院av| 91久久久久久久久久久久久 |