《UNIX环境高级编程》笔记 第二章——限制、选项和功能测试宏

1. 限制

1.1 简介

计算机系统由硬件和软件(包含操作系统)两大部分组成,系统能够正常并且稳定地运行既受制于底层硬件资源的限制,比如内存大小,IO数量,总线宽度,CPU主率等,又受制于系统具体实现的限制,比如文件路径和文件名的长度,进程能够打开的最大文件描述符个数,函数栈大小等。很多限制能够在编译或运行时获取,在具有特权用户及硬件资源满足的情况下,有一些限制可以通过命令或函数来改变。

两种类型的限制:

(1) 编译时限制,可在头文件中定义

(2)运行时限制,有两个函数可以取得运行时限制

        与文件或目录无关的运行时限制:sysconf

        与文件和目录有关的运行时限制:pathconf和fpathconf

1.2 函数原型

#include <unistd.h>

long sysconf(int name);

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

long fpathconf(int fd,  int name);

以_SC_开头的常量用作sysconf函数的name参数,以_PC_开头的常量用作pathconf和fpathconf函数的name参数。pathname可以是一个目录或文件,fd是一个打开的文件描述符(文件或目录)。三个函数若成功则返回相应的值,若失败则返回-1。使用pathconf和fpathconf对pathname和fd有很多限制,如果不满足则返回一个未定义的值。

1.3 实例

#include <stdio.h>
#include <errno.h>
#include <limits.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/pa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值