⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conf.c

📁 UNIX高级环境编程(第二版)文件系统部分的程序
💻 C
字号:
#include    <errno.h>
#include    "ourhdr.h"

static void    pr_sysconf(char *, int);
static void    pr_pathconf(char *, char *, int);

int
main(int argc, char *argv[])
{
    if (argc != 2)
        err_quit("usage: a.out <dirname>");

    pr_sysconf("ARG_MAX            =", _SC_ARG_MAX);
    pr_sysconf("CHILD_MAX          =", _SC_CHILD_MAX);
    pr_sysconf("clock ticks/second =", _SC_CLK_TCK);
    pr_sysconf("NGROUPS_MAX        =", _SC_NGROUPS_MAX);
    pr_sysconf("OPEN_MAX           =", _SC_OPEN_MAX);
#ifdef    _SC_STREAM_MAX
    pr_sysconf("STREAM_MAX         =", _SC_STREAM_MAX);
#endif
#ifdef    _SC_TZNAME_MAX
    pr_sysconf("TZNAME_MAX         =", _SC_TZNAME_MAX);
#endif
    pr_sysconf("_POSIX_JOB_CONTROL =", _SC_JOB_CONTROL);
    pr_sysconf("_POSIX_SAVED_IDS   =", _SC_SAVED_IDS);
    pr_sysconf("_POSIX_VERSION     =", _SC_VERSION);
    pr_pathconf("MAX_CANON       =", "/dev/tty", _PC_MAX_CANON);
    pr_pathconf("MAX_INPUT       =", "/dev/tty", _PC_MAX_INPUT);
    pr_pathconf("_POSIX_VDISABLE =", "/dev/tty", _PC_VDISABLE);
    pr_pathconf("LINK_MAX        =", argv[1], _PC_LINK_MAX);
    pr_pathconf("NAME_MAX        =", argv[1], _PC_NAME_MAX);
    pr_pathconf("PATH_MAX        =", argv[1], _PC_PATH_MAX);
    pr_pathconf("PIPE_BUF        =", argv[1], _PC_PIPE_BUF);
    pr_pathconf("_POSIX_NO_TRUNC =", argv[1], _PC_NO_TRUNC);
    pr_pathconf("_POSIX_CHOWN_RESTRICTED =",
                            argv[1], _PC_CHOWN_RESTRICTED);
    exit(0);
}

static void
pr_sysconf(char *mesg, int name)
{
    long    val;

    fputs(mesg, stdout);
    errno = 0;
    if ( (val = sysconf(name)) < 0) {
        if (errno != 0)
            err_sys("sysconf error");
        fputs(" (not defined)\n", stdout);
    } else
        printf(" %ld\n", val);
}

static void
pr_pathconf(char *mesg, char *path, int name)
{
    long    val;

    fputs(mesg, stdout);
    errno = 0;
    if ( (val = pathconf(path, name)) < 0) {
        if (errno != 0)
            err_sys("pathconf error, path = %s", path);
        fputs(" (no limit)\n", stdout);
    } else
        printf(" %ld\n", val);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -