打印所有可能的sysconf和pathconf參數(shù)

#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)
    {
        printf("usage: a.out<dirname>");
    }
    pr_sysconf("ARG_MAX=",_SC_ARG_MAX);
    pr_sysconf("CHILD_MAX=",_SC_CHILD_MAX);
    pr_sysconf("cock 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("STRAEM_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_MAX=",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)
            printf("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)
            printf("pathconf error,path=%s",path);
        fputs(" (no limit)\n",stdout);
    }else
        printf(" %ld\n",val);
}
[matcha-vanilla@localhost test]$ cc i.c
[matcha-vanilla@localhost test]$ ./a.out iofile.txt
ARG_MAX= 2621440
CHILD_MAX= 1024
cock ticks/second= 100
NGROUPS_MAX= 65536
OPEN_MAX= 1024
STRAEM_MAX= 16
TZNAME_MAX= 6
_POSIX_JOB_CONTROL= 1
_POSIX_SAVED_IDS= 1
_POSIX_VERSION= 200809
MAX_CANON= 255
MAX_INPUT= 255
_POSIX_VDISABLE= 0
LINK_MAX=pathconf error,path=iofile.txt (no limit)
NAME_MAX=pathconf error,path=iofile.txt (no limit)
PATH_MAX= 4096
PIPE_MAX= 4096
_POSIX_NO_TRUNC= 1
+POSIX_CHOWN_RESTRICTED=pathconf error,path=iofile.txt (no limit)
[matcha-vanilla@localhost test]$ 

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容