频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
更改/输出当前工作目录
2013-03-14 08:51:51      个评论      
收藏   我要投稿
更改当前的工作目录

头文件:#include <unistd.h>

用法格式:int chdir ( const char *path );

chdir用来将当前工作目录改为参数path指定的目录。

注意:path指针指向的参数一定是连续的路径且不能带空格,否则将会返回 -1 。

getcwd函数——获取当前工作目录  

 

char *getcwd(char *buffer,size_t size)

成功则返回指向当前工作目录字符串的指针

失败则返回为NULL。

PATH_MAX:在limits.h中有定义

 

函数名称:getcwd

  

函数原型:char *getcwd( char *buffer, int maxlen );

功 能:获取当前工作目录

参数说明:_getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数maxlen为buffer的空间大小。

返 回 值:成功则返回当前工作目录,失败返回 FALSE。

在某些 Unix 的变种下,如果任何父目录没有设定可读或搜索模式,即使当前目录设定了,getcwd()还是会返回 FALSE。

[cpp]  

#include <stdio.h>  //perror函数所在的库函数  

#include <iostream>  

#include <limits.h>  

#include <unistd.h>  

using namespace std;  

int main()  

{  

    char cur_work_dir[PATH_MAX];  

    cout << "Current Max Path Length Is " << PATH_MAX << endl;  

    if(getcwd(cur_work_dir,PATH_MAX) == NULL)  

    {  

        perror("Couldn't get current working directory!");  

        return 1;  

    }  

    cout << "Current Working Directory is : " << cur_work_dir << endl;  

    return 0;  

}  

 

Unix系统实现定义了很多幻数和常量,这些在不同程度上依从POSIX,也遵从POSIX.1标准。这就有助于软件的可移植性。

以下两种类型的限制是必须的:

1) 编译时限制(例如,短整型的最大值是什么?)

2) 运行时限制(例如,文件名可以有多少个字符?)

编译时限制可在头文件中定义,程序在编译时可以包含头文件。但是,运行时限制则要求进程调用一个函数以获取此种限制值。

为了解决此类问题:

1) 编译时限制(例如,短整型的最大值是什么?)

2) 不与文件或目录相关联的运行时限制(sysconf函数)

3) 与文件或目录相关联的运行时限制(pathconf和fpathconf函数)

 

2. 函数原型

#include<unistd.h>

long sysconf(int name);

long pathconf(const char *pathname, intname);

long fpathconf(int filedes, int name);

后两个函数之间的区别是:一个用路径名作为参数,另一个则取文件描述符作为参数。

返回值:

(1)如果 name 不是一个合适的常量,则所有三个函数都会返回-1,并将 errno 设置为EINVAL。

(2)有些 name可以返回变量的值(返回值>=0),或者返回-1,这表示该值是不确定的,此时不改变 errno的值。

因此,程序要检查错误,应该在调用 sysconf() 之前将 errno 设置为 0 ,然后如果返回-1,则检验到错误。

 

linux下查看和添加PATH环境变量

 

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

  编辑你的 PATH 声明,其格式为:

  PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

  你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ source .bash_profile

  需要注意的是,最好不要把当前路径 “./” 放到 PATH 里,这样可能会受到意想不到的攻击。完成后,可以通过 $ echo $PATH 查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于 shell 搜索的路径之外的程序了。

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 目录
上一篇:sencha touch selectfield 二级联动的例子
下一篇:贝叶斯分类:Common Lisp实现
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站