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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

随手写个pwd命令

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随手写个pwd命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先聲明,這是《Unix/Linux編程實踐教程》書上第4章的一個例子,用以說明chdir命令的使用,以及相關的文件系統內容。網上關于這個代碼例子的網頁(寫在博客上的,百度知道什么的)很多。

根據書上給的思路,寫了個和書上代碼差不多的。

#include<stdio.h>
#include
<string.h> #include<unistd.h> #include<fcntl.h> #include<sys/stat.h> #include<dirent.h> #include<stdlib.h> #include<errno.h>#define MAX_SIZE 256void do_pwd(char*);int get_inode(char *path) {struct stat info;int inode;if(stat(path,&info)==-1){perror("get inode error");exit(errno);}inode = info.st_ino;return inode; }void get_name_inode(char name[], int inode) {DIR *dir_ptr;struct dirent *ptr;if((dir_ptr = opendir("."))==NULL){perror("dir open error");exit(errno);}while((ptr = readdir(dir_ptr))!=NULL){if(ptr->d_ino==inode){strcpy(name,ptr->d_name);break;}}closedir(dir_ptr);return; }int main(int argc, char *argv[]) {do_pwd(".");printf("\n");return 0; }void do_pwd(char *path) {int flag=0;char name[MAX_SIZE];int inode=get_inode(path);if(inode!=get_inode("..")){chdir("..");get_name_inode(name,inode);do_pwd(".");printf("/%s",name);}return; }

因為用的是書上的思路,書上例子有的問題,這段代碼也一樣有。具體就是,當系統不是掛載在一個分區的時候,這個程序只能顯示到當前分區的根部,即掛載點,而不能繼續向上訪問另外分區的目錄。舉例來說,在我的系統中,/分區和/home分區掛載在不同的硬盤分區上,那么這個程序就只能顯示到username這一級而不能顯示/home。

然后,就想去找gnu的pwd命令實現。根據pwd命令的man手冊,pwd命令在coreutils包中。去網站上下了個包,看pwd.c的源碼,有300多行,編譯了用gdb單步跟了一下,發現代碼邏輯主要就幾行。最主要的就是調用xgetcwd函數。這個函數在源碼文件的lib目錄中的xgetcwd.h中聲明,定義在相應的.c文件中,就幾行,調用了一下getcwd函數,然后返回。

于是,一個功能可用的簡單pwd就像下面這樣:

#include<stdio.h> #include<unistd.h>int main(int argc, char *argv[]) {printf("%s\n",getcwd(NULL, 0));return 0; }

編譯、運行。顯示正確。

轉載于:https://www.cnblogs.com/fityme/archive/2013/04/28/3050068.html

總結

以上是生活随笔為你收集整理的随手写个pwd命令的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 人人爱人人插 | 天天射天天射天天射 | 久久青青操 | 国产无码精品久久久 | 九七电影院97理论片 | a免费视频 | 东京久久久 | 爱爱网视频| 91本色| 午夜伦理剧场 | 手机看片日韩在线 | 天天爱天天舔 | 四虎影院永久 | 视频三区在线 | 亚洲av无码国产综合专区 | 三年在线观看视频 | 欧美67194| 国产三级精品在线 | 日本美女性高潮 | 91九色蝌蚪porny | 九一在线视频 | 男人操女人的网站 | 国产精品一区二区入口九绯色 | 欧美视频成人 | 精品人妻一区二区三区麻豆91 | 黑人添美女bbb添高潮了 | 亚洲第一色网站 | 欧美v在线 | 一级日韩毛片 | 微拍福利一区二区 | 在线成人av网站 | 日韩激情床戏 | 午夜一级免费 | 老妇女av | 国产丝袜第一页 | 在线精品免费视频 | 三级免费观看 | 最新的av网站| 国产成人高清 | 成年人免费看的视频 | 天天干视频在线观看 | 亚洲在线中文字幕 | 欧美视频免费看欧美视频 | 亚洲图片在线 | 337p粉嫩大胆噜噜噜噜69影视 | 国产成人亚洲精品自产在线 | 国产精品一区网站 | 日韩精品免费一区二区夜夜嗨 | 黄色片在线免费观看视频 | 黄色动漫免费在线观看 | 精品国产1区2区 | 天天操天天射天天 | 亚洲视频网站在线观看 | 中国黄色录像 | 永久黄色网址 | 亚洲日本中文字幕在线 | 日韩专区在线观看 | 色哟哟网站入口 | 色88久久久久高潮综合影院 | 91蜜桃传媒精品久久久一区二区 | 韩国中文三级hd字幕 | 香蕉黄色片 | 丰满少妇一区二区三区 | 免费观看已满十八岁 | 青青草国产成人99久久 | 欧美在线视频a | 欧洲做受高潮免费看 | 91精品国产aⅴ一区二区 | 艳妇乳肉豪妇荡乳av | 国产91黄色 | 欧美日韩免费高清 | 国产精品黄色网 | 国内自拍偷拍网 | 99久久婷婷国产综合精品电影 | 黄色免费小视频 | 99久久久无码国产精品性 | 99在线无码精品入口 | 国语精品 | 日韩精品免费在线 | 天天综合久久 | 日韩在线综合 | 亚洲天堂色图 | 国产亚洲电影 | 国产又粗又长又硬免费视频 | 高清成人 | 亚洲精品久久久久久久久久吃药 | av一二三 | 打开免费观看视频在线播放 | 久一久久 | 捆绑调教在线观看 | 超碰人人干人人 | 一级片少妇 | 欧美日韩欧美日韩在线观看视频 | 雷电将军和丘丘人繁衍后代视频 | 一区二区乱子伦在线播放 | 肉丝超薄少妇一区二区三区 | 亚洲精品免费在线视频 | 制服丝袜第一页在线观看 | 国产日韩av在线播放 |