首页 > 编程知识 正文

shell返回上一级目录,pwd命令查看当前所在目录

时间:2023-05-03 22:30:47 阅读:23873 作者:4176

相关函数: stat、lstat、symlink

头文件: #include unistd.h

定义函数: intreadlink(constchar*path,char *buf,size_tbufsiz );

函数说明: readlink ) )将参数path的符号连接内容返回到参数buf指向的内存空间。 返回的内容不是以NULL结尾,而是返回字符串的字符数。 如果参数bufsiz小于符号链接的内容长度,过长的内容将被截断

返回值:如果成功,则传递符号链接指向的文件路径字符串。 失败时返回-1,错误代码保存在errno中

错误代码:

EACCESS在获取文件时被拒绝,权限不足

EINVAL参数bufsiz是负数

EIO访问错误

ELOOP尝试打开的文件中存在太多符号连接问题

名称too long参数path的路径名太长

由ENOENT参数path指定的文件不存在

ENOMEM核心内存不足

ENOTDIR参数路径中的目录存在,但不是实际目录

示例1 :

# include stdio.h # include unistd.h # define path _ max 1024 char * get _ exe _ path () {静态char buf [ path _ max ]; int i; int rslt=readlink (/proc/self/exe )、buf、PATH_MAX ); if(rslt0|||rslt=path_max ) {返回空值; } buf[rslt]=' '; for(I=RSLT; i=0; I--}{printf(buf(%d ) %c(n ),I,buf(I ) }; if(buf[I]=='/' ) { buf[i 1]=' '; 布雷克; } }返回缓冲区; }intmain(intargc,char ** argv ) printf('%sn ',get_exe_path ); 返回0; }

示例2 :

# include stdio.h # include unistd.h/type==1获得当前目录char*get_exe_path(char*buf,int count,int count ) if((rslt0)|) rslt=count-1 ) ) {返回空值; } buf[rslt]=' '; //当前目录if(type==0) for ) I=rslt; i=0; I--}{//printf(buf[%d]%cn ),I,buf[i] ); if(buf[I]=='/' ) { buf[i 1]=' '; 布雷克; } }返回缓冲区; }intmain(intargc,char ** argv ) { char path[1024]; printf('%sn ',get_exe_path ) path,1024 ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。