CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

Linux下一些目录和文件访问的问题

楼主pineapple1175(向窗外看看)2006-03-13 18:43:04 在 Linux/Unix社区 / 程序开发区 提问

请问各位大侠,在c种有没有什么标准的库函数能够得到当前系统种得环境变量,以及如何实现判断某个目录下是否存在某个文件的函数啊,如果有请给出头文件和相应的函数原型,(有简短代码就跪谢了),呵呵 问题点数:20、回复次数:4Top

1 楼x86(大雪)回复于 2006-03-14 09:33:59 得分 15

获得一个环境变量可以通过调用‘getenv()’函数完成。  
  #include   <stdlib.h>  
  char   *getenv(const   char   *name);  
               
  记住环境变量是被继承的;每一个进程有一个不同的环境变量表拷贝(译者注:从core文件中我们可以看出这一点)。结果是,你不能从一个其他进程改变当前进程的环境变量,比如shell进程。  
   
  假设你想得到环境变量‘TERM’的值,你需要使用下面的程序:  
   
            char   *envvar;  
   
            envvar=getenv("TERM");  
   
            printf("The   value   for   the   environment   variable   TERM   is   ");  
            if(envvar)  
            {  
                    printf("%s\n",envvar);  
            }  
            else  
            {  
                    printf("not   set.\n");  
            }  
               
  ---------------------  
   
  如果你不知道确切你想要的环境变量的名字,那么‘getenv()’函数不是很有用。在这种情况下,你必须更深入了解环境变量表的存储方式。  
   
  全局变量,‘char   **envrion’,包含指向环境字符串指针数组的指针,每一个字符串的形式为‘“NAME=value”’。这个数组以一个‘空’(NULL)指针标记结束。这里是一个打印当前环境变量列表的小程序(类似‘printenv’)。  
   
            #include   <stdio.h>  
   
            extern   char   **environ;  
   
            int   main()  
            {  
                    char   **ep   =   environ;  
                    char   *p;  
                    while   ((p   =   *ep++))  
                            printf("%s\n",   p);  
                    return   0;  
            }  
               
  =============================  
  #include   <unistd.h>  
  int   access   (const   char   *pathname,   int   mode);  
  返回:成功为0,出错为-1  
  其中mode常数取自<unistd.h>  
  mode   说明  
  R_OK   测试读许可权  
  W_OK   测试写许可权  
  X_OK   测试执行许可权  
  F_OK   测试文件是否存在  
   
   
  另外lstat也可以达到这个目的。  
   
  Top

2 楼pineapple1175(向窗外看看)回复于 2006-03-14 12:08:59 得分 0

谢谢二楼的解答,再想请问一下,这些库函数再网上或者什么电子书能找得到吗??  
  有得话发给我好吗?  
  我得邮箱pienapple1175@sina.com.cnTop

3 楼yjf7888(seeking a place 找工作了location:Chengdu)回复于 2006-03-14 12:21:55 得分 5

《unix环境高级编程》讲了这些,有电子书,很容易找到Top

4 楼pineapple1175(向窗外看看)回复于 2006-03-14 22:06:14 得分 0

谢谢楼上帮助Top

相关问题

  • Windows的程序如何访问LINUX共享目录下的文件?
  • bin目录下的类文件怎样访问web.config文件。
  • 如何访问ftp文件并显示该文件夹中的文件目录
  • 根目录无法访问ASP文件.而虚拟目录可以
  • 如何访问不在当前目录下的dbf文件?
  • Apache中怎样设置目录里文件的访问权限
  • Javascript如何访问客户端的目录和文件呢?
  • 如果访问IIS目录以为的文件?
  • javascript如何访问同一目录下的文件?
  • WEB跟目录下有个PHP目录,为什么PHP目录里面的文件就访问不到??

关键词

  • 函数
  • 文件
  • 指针
  • 许可
  • 环境变量
  • envvar
  • getenv
  • 进程
  • 许可权
  • term

得分解答快速导航

  • 帖主:pineapple1175
  • x86
  • yjf7888

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo