Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343702
  • 博文数量: 60
  • 博客积分: 1570
  • 博客等级: 上尉
  • 技术积分: 620
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-02 23:37
文章分类

全部博文(60)

文章存档

2012年(2)

2010年(2)

2009年(56)

分类: LINUX

2009-11-10 22:37:04

一、sysconf、pathconf和fpathconf函数

#include

long sysconf(int name);

long pathconf(const char *pathname, int name);

long fpathconf(int filedes, int name);

返回值:若成功返回相应值,如果出错,则返回-1

这三个函数返回值的进一步说明:

(1)如果name不是系统支持的常量,则这三个函数都会返回-1,并将errno设置为EINVAL。

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

二、示例代码

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>

#ifdef OPEN_MAX
static long openmax = OPEN_MAX
#else
static long openmax = -1;
#endif

#define OPEN_MAX_GUESS 256

long open_max(void)
{
        errno = 0;
        if ((openmax = sysconf(_SC_OPEN_MAX)) < 0) {
                if (errno == 0)
                        openmax = OPEN_MAX_GUESS;
                else

                        fprintf(stderr, "sysconf for _SC_OPEN_MAX error: %m\n");
        }
        return openmax;
}

int main(int argc, char *argv[])
{
        printf("openmax = %ld\n", open_max());
        exit(0);
}


 
参考: APUE2程序清单2-4
 
 

阅读(1094) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~