PWD的編譯及調試
阿新 • • 發佈:2017-11-19
sizeof perror alt 工作目錄 eof 鏈接 命令格式 lin return
PWD的編譯及調試
- 命令格式:
pwd [選項] - 命令功能:
- 查看”當前工作目錄“的完整路徑
- 常用參數:
一般情況下不帶任何參數 - 如果目錄是鏈接時:
格式:pwd -P
顯示出實際路徑,而非使用連接(link)路徑。
PWD代碼如下:
~~~include
include<sys/stat.h>
include
include
include
include<sys/types.h>
void printpath();
char inode_to_name(int);
int getinode(char );
int main()
{
printpath();
putchar(‘\n‘);
return ;
}
void printpath()
{
int inode,up_inode;
char str;
inode = getinode(".");
up_inode = getinode("..");
chdir("..");
str = inode_to_name(inode);
if(inode == up_inode) {
// printf("/%s",str);
return;
}
printpath();
printf("/%s",str);
}
int getinode(char
{
struct stat st;
if(stat(str,&st) == -1){
perror(str);
exit(-1);
}
return st.st_ino;
}
char inode_to_name(int inode)
{
char str;
DIR dirp;
struct dirent dirt;
if((dirp = opendir(".")) == NULL){
perror(".");
exit(-1);
}
while((dirt = readdir(dirp)) != NULL)
{
if(dirt->d_ino == inode){
str = (char )malloc(strlen(dirt->d_name)
strcpy(str,dirt->d_name);
return str;
}
}
perror(".");
exit(-1);
}
~~~
截圖如下
PWD的編譯及調試