索引

标有“definition of”的函数子项指向函数原型出现的地方,当该函数可用时,指向函数的源代码。文中定义的用于后续例子中的函数也包含在索引中,例如图3~11中的set_fl函数。较大例子(第17、19、20和21章)中的某些部分是外部函数的定义,为了便于理解这些大例子,这些外部函数的定义也包含在本索引中。另外,本索引还包括许多例子中出现的重要函数和常量,如select和poll。不过几乎每个例子中都会出现的一般函数(如exit)出现在例子中时并没有为它们建立索引。

本索引中的页码为英文版原书的页码,与书中页边标注的页码对应。

#!, 见interpreter file

., 见current directory

.., 见parent directory

2.9BSD, 234

386BSD, 34

4.1BSD, 525

4.2BSD, 18, 34, 81, 121, 129~130, 183, 277, 326, 329, 469,

502, 508, 521, 525, 589

4.3BSD, 33~34, 36, 49, 201, 257, 267, 289, 313, 318, 329,

366, 482, 535, 735, 898, 951

Reno , 34, 76

Tahoe, 34, 951

4.4BSD, 21, 34, 74, 112, 121, 129, 149, 234, 329, 535, 589,

735, 744, 951

A

a2ps程序, 842

abort函数, 198, 236, 241, 272, 275, 313, 317~319, 331,

365~367, 381, 447, 900

函数定义, 365~366

absolute pathname(绝对路径名), 5, 8, 43, 50, 64, 136,

141~142, 260, 553, 911

accept 函数, 148, 331, 451, 608~609, 615, 617, 635,

639~640, 648, 817

函数定义, 608

access函数, 102~104, 121, 124, 331, 452

函数定义, 102

Accetta, M., 35

accounting(记载,会计)

login(登录), 186~187

process(进程), 269~275

acct函数, 269

acct结构, 270, 273

acctcom程序, 269

accton程序, 269, 274

ACORE常量, 271, 273~274

Adams, J., 293

add_job函数, 814, 820, 823, 827

函数定义, 820

add_option函数, 831, 834

函数定义, 831

addressing, socket(套接字寻址), 593~605

addrinfo结构, 599~603, 614, 616, 618, 620, 622, 800,

802, 804, 807, 813~814, 816, 819, 833

add_worker函数, 814, 824, 828

函数定义, 828

adjustment on exit, semaphore(信号量退出时调整), 570~571

Adobe系统, 825, 947

advisory record locking(建议性记录锁), 495

AES(Application Environment Specification,应用环境规

范), 32

AEXPND常量, 271

AF_INET常量, 590~591, 595~596, 598, 601, 603~604, 802, 808

AF_INET6常量, 590, 595~596, 601

AF_IPX常量, 590

AF_LOCAL常量, 590

AFORK常量, 270~271, 273

AF_UNIX常量, 590, 601, 630, 632, 635, 637, 640~641, 941

AF_UNSPEC常量, 590, 601

agetty程序, 290

Aho, A. V., 262, 947

AI_ALL常量, 603

AI_CANONNAME常量, 603, 616, 618, 623, 802

AI_NUMERICHOST常量, 603

AI_NUMERICSERV常量, 603

aio_cancel函数, 514~515

函数定义, 514

aiocb结构, 511, 517~518

aio_error函数, 331, 513, 515, 519~520

函数定义, 513

aio_fsync函数, 512~513, 520

函数定义, 513

<aio.h>头文件, 29

AIO_LISTIO_MAX常量, 515~516

AIO_MAX常量, 515~516

AIO_PRIO_DELTA_MAX常量, 515~516

aio_read函数, 512~513, 515, 518

函数定义, 512

aio_return函数, 331, 513, 519~520

函数定义, 513

aio_suspend函数, 331, 451, 514, 520

函数定义, 514

aio_write函数, 512~513, 515, 519

函数定义, 512

AI_PASSIVE常量, 603

AI_V4MAPPED常量, 600, 603

AIX, 35, 334

alarm 函数, 313, 317, 331~332, 335, 338~343, 357,

373~374, 381~382, 620~621, 924

函数定义, 338

alloca函数, 210

Almquist, K., 4

already_running函数, 475~478

函数定义,474

ALTWERASE常量, 676, 682, 685

American National Standards Institute, 见ANSI

Andrade, J. M., 560, 947

ANSI(American National Standards Institute,美国国家标准学会), 25

Application Environment Specification, 见AES

apue_db.h头文件, 745, 753, 757, 761

apue.h 头文件, 7, 9~10, 247, 324, 489~490, 635, 755,

895~898

Architecture, UNIX(UNIX体系结构), 1~2

argc变量, 815

ARG_MAX常量, 40, 43, 47 49, 251

arguments, command-line(命令行参数), 203

argv变量, 663

Arnold J. Q., 206, 947

<arpa/inet.h>头文件, 29, 594

asctime函数, 192

<assert.h>头文件, 27

assignment-allocation character(赋值分配字符), 162

ASU常量, 271, 273

asynchronous I/O(异步I/O), 501, 509~520

asynchronous socket I/O(异步套接字I/O), 627

async-signal safe(异步信号安全), 330, 446, 450, 457,

461~462, 927

at程序, 259, 472

atd程序, 259, 465

AT_EACCESS常量, 103

atexit函数, 40~41, 43, 200, 202, 226, 236, 394, 731, 920函数定义, 200

ATEXIT_MAX常量, 40~41, 43, 49, 52

AT_FDCWD 常量, 65, 94, 102, 106, 110, 116~117, 120,

123~124, 127, 129, 553

atoi函数, 766, 839~840

atol函数, 765~767, 818, 823

atomic operation(原子操作), 39, 44, 59, 63, 77~79, 81, 116,

149, 359, 365, 488, 553, 566, 568, 570, 945

AT_REMOVEDIR常量, 117

AT_SYMLINK_FOLLOW常量, 116

AT_SYMLINK_NOFOLLOW常量, 94, 106, 110, 127

AT&T, 6, 33, 174, 336, 507, 948

automatic variables(自动变量), 205, 215, 217, 219, 226

avoidance, deadlock(死锁避免), 402~407

awk程序, 44, 46, 262~264, 552, 950

AXSIG常量, 271, 273~274

B

B0常量, 692

B110常量, 692

B115200常量, 692

B1200常量, 692

B134常量, 692

B150常量, 692

B1800常量, 692

B19200常量, 692

B200常量, 692

B2400常量, 692

B300常量, 692

B38400常量, 692

B4800常量, 692

B50常量, 692

B57600常量, 692

B600常量, 692

B75常量, 692

B9600常量, 692

Bach, M. J., 74, 81, 112, 116, 229, 907, 948

background process group(后台进程组), 296, 300, 302, 304,

306~307, 309, 321, 369, 377, 944

backoff, exponential(指数补偿), 606

Barkley, R. E., 948

barriers attributes(屏障属性), 441~442

barriers(屏障), 418~422

basename函数, 442

bash程序, 85, 372

.bash_login文件, 289

.bash_login文件, 289

Bass, J., 485

baud rate, terminal I/O(终端I/O波特率), 692~693

Berkeley Software Distribution, 见BSD

bibliography, alphabetical(按字母序的参考文献), 947~953

big-endian byte order(大端字节序), 593, 791

bind函数, 331, 604, 609, 624~625, 634~635, 637~638, 641函数定义, 604

/bin/false程序, 179

/bin/true程序, 179

<bits/signum.h>头文件, 314

block special file(块特殊文件), 95, 138~139

Bolsky, M. I., 548, 948

Bostic, K., 33, 74, 112, 116, 525, 951

Keith , 229, 236

Bourne, S. R., 3

Bourne shell, 3, 53, 90, 210, 222, 289, 299, 303, 372, 497, 542, 548, 702, 935, 950

Bourne-again shell, 3~4, 53, 85, 90, 210, 222, 289, 300, 548 Bovet, D. P., 74

BREAK character(BREAK字符), 677, 682, 685, 688, 690, 694, 708

BRKINT常量, 676, 685, 688, 706~708

BS0常量, 685

BS1常量, 685

BSD(Berkeley Software Distribution), 34, 65, 111, 175, 286,

289, 291, 293, 296~297, 299, 482, 501, 509~511, 532,

596~597, 630, 726~727, 734, 742

BSD Networking Release 1.0, 34

BSD Networking Release 2.0, 34

BSDLY常量, 676, 684~685, 689

__BSD_VISIBLE常量, 473

bss segment(bss段), 205

buf_args函数, 656~658, 668~670, 897

函数定义, 657

buffer cache(缓冲区高速缓存), 81

buffering, standard I/O(标准I/O缓冲), 145~147, 231, 235,

265, 367, 552, 721, 752

BUFSIZ常量, 49, 147, 166, 220

build_qonstart函数, 814, 817, 822

函数定义, 822

BUS_ADRALN常量, 353

BUS_ADRERR常量, 353

BUS_OBJERR常量, 353

byte order(字节序), 593~594, 792, 810, 825, 831, 834, 842,

861, 865

big-endian(大端字节序), 593, 791

little-endian(小端字节序), 593

C

C, ANSI,

ISO, 25~26, 153, 950

C shell, 3, 53, 222, 289, 299, 548

c99程序, 58, 70

cache

buffer(缓冲区高速缓存), 81

page(页高速缓存), 81

CAE(Common Application Environment,公共应用环境), 32

calendar time(日历时间), 20, 24, 59, 126, 189, 191~192,

264, 270

calloc函数, 207~208, 226, 544, 760, 920

函数定义, 207

cancellation point(取消点), 451

canonical mode, terminal I/O(终端I/O规范模式), 700~703

Carges, M. T., 560, 947

cat程序, 89, 112, 123, 301, 304, 734~735, 748, 944

catclose函数, 452

catgets函数, 442, 452

catopen函数, 452

CBAUDEXT常量, 675, 685

cbreak terminal mode(cbreak终止模式), 672, 704, 708, 713

cc程序, 6, 57, 206

CCAR_OFLOW常量, 675, 685, 689

cc_t数据类型, 674

CCTS_OFLOW常量, 675, 685

cd程序, 136

CDSR_OFLOW常量, 675, 685

CDTR_IFLOW常量, 675, 685

Cesati, M., 74

cfgetispeed函数, 331, 677, 692

函数定义, 692

cfgetospeed函数, 331, 677, 692

函数定义, 692

cfsetispeed函数, 331, 677, 692

函数定义, 692

cfsetospeed函数, 331, 677, 692

函数定义, 692

character special file(字符特殊文件), 95, 138~139, 699 CHAR_BIT常量, 37~38

CHARCLASS_NAME_MAX常量, 39, 49

CHAR_MAX常量, 37~38

CHAR_MIN常量, 37~38

chdir函数, 8, 121, 135~137, 141, 222, 288, 331, 468, 912

函数定义, 135

Chen, D., 948

CHILD_MAX常量, 40, 43, 49, 233

chmod函数, 106~108, 121, 125, 331, 452, 558, 641, 944

函数定义, 106

chmod程序, 99~100, 559

chown函数, 55, 109~110, 120~121, 125, 288, 331, 452, 558, 944

函数定义, 109

chroot函数, 141, 480, 910, 928

CIBAUDEXT常量, 675, 685

CIGNORE常量, 675, 685

CLD_CONTINUED常量, 353

CLD_DUMPED常量, 353

CLD_EXITED常量, 353

CLD_KILLED常量, 353

CLD_STOPPED常量, 353

CLD_TRAPPED常量, 353

clearenv函数, 212

clearerr函数, 151

函数定义, 151

cli_args函数, 656~658, 668~669

函数定义, 658

cli_conn函数, 636~637, 640, 659, 665, 897

函数定义, 662, 665, 667

client_add函数, 662, 665, 667

函数定义, 661

client_alloc函数, 661~662, 668

函数定义, 660

client_cleanup函数, 814, 824, 829

函数定义, 829

client_del函数, 665, 667

函数定义, 661

client-server model(客户进程-服务器进程模型), 479~480,

585~587

client_thread函数, 814, 817, 824

函数定义, 824

CLOCAL常量, 318, 675, 685

clock函数, 58~59

clock tick(时钟滴答), 20, 42~43, 49, 59, 270, 280

clock_getres函数, 190

函数定义, 190

clock_gettime函数, 189~190, 331, 408, 414, 437, 439函数定义, 189

clockid_t数据类型, 189

CLOCK_MONOTONIC常量, 189

clock_nanosleep函数, 373~375, 437, 439, 451, 462

函数定义, 375

CLOCK_PROCESS_CPUTIME_ID常量, 189

CLOCK_REALTIME常量, 189~190, 408, 437, 439, 581

clock_settime函数, 190, 439

函数定义, 190

CLOCKS_PER_SEC常量, 59

clock_t数据类型, 20, 58~59, 280

CLOCK_THREAD_CPUTIME_ID常量, 189

clone函数, 229

close函数, 8, 52, 61, 66, 80~81, 124, 128, 331, 451, 468,

474, 492, 532, 537~539, 544, 550, 553, 560, 577~578,

587, 592~593, 609, 616, 618, 625, 638~639, 641,

654~655, 657, 665, 667~669, 725~726, 728~729,

739~740, 761, 823, 826~827, 829, 833, 837

函数定义, 66

closedir函数, 5, 7, 130~135, 452, 698, 823, 910

函数定义, 130

closelog函数, 452, 470

函数定义, 470

close-on-exec flag(执行时关闭标志), 80, 83, 252~253,

479~480, 492

clrasync函数, 函数定义, 940

clr_fl函数, 85, 482~483, 896, 937

clri程序, 122

cmsgcred结构, 648~651

CMSG_DATA函数, 645~646, 648, 650, 652

函数定义, 645

CMSG_FIRSTHDR函数, 645, 652

函数定义, 645

cmsghdr结构, 645~647, 649, 651

CMSG_LEN函数, 645~647, 649, 651

函数定义, 645

CMSG_NXTHDR函数, 645, 650, 652函数定义, 645

CMSPAR常量, 675, 685, 690

codes, option(选项代码), 31

COLL_WEIGHTS_MAX常量, 39, 43, 49 COLUMNS环境变量, 211

Comer, D. E., 744, 949

command-line arguments(命令行参数), 203

Common Application Environment, 见CAE

Common Open Software Environment, 见COSE

communication, network printer(网络打印机通信),

789~843

<complex.h>头文件, 27

comp_t数据类型, 59

Computing Science Research Group, 见CSRG

condition variable attributes(条件变量属性), 440~441

condition variables(条件变量), 413~416

cond_signal函数, 416

connect 函数, 331, 451, 605~608, 610~611, 621, 635,

641~642

函数定义, 605

connection establishment(连接建立), 605~609

connect_retry函数, 607, 614, 800, 808, 834

函数定义, 606~607

controlling

process(控制进程), 296~297, 318

terminal(控制终端), 63, 233, 252, 270, 292, 295~298, 301,

303~304, 306, 309, 311~312, 318, 321, 377, 463, 465~466, 469,

480, 680, 685, 691, 694, 700, 702, 716, 724, 726~727, 898, 953

cooked terminal mode(精加工终端模式), 672

cooperating processes(合作进程), 495, 752, 945

Coordinated Universal Time, 见UTC

coprocesses(协同进程), 548~552, 721, 737

copy-on-write(写时复制), 229, 458

core dump(核心转储), 74, 928

core文件, 111, 124, 275, 315, 317, 320, 332, 366, 681, 703,

909, 920, 922

COSE(Common Open Software Environment,公共开放软

件环境), 32

count, link(链接计数), 44, 59, 114~117, 130

cp程序, 141, 528

cpio程序, 127, 142, 910~911

<cpio.h>头文件, 29

CR terminal character(CR终止符), 678, 680, 703

CR0常量, 685

CR1常量, 685

CR2常量, 685

CR3常量, 685

CRDLY常量, 676, 684~685, 689

CREAD常量, 675, 686

creat函数, 61, 66, 68, 79, 89, 101, 104, 118, 121, 125, 149,

331, 451, 491, 825~826, 909, 912

函数定义, 66

creation mask, file mode(文件模式创建屏蔽字), 104~105,

129, 141, 169, 233, 252, 466

cron程序, 259, 384, 465, 470, 472~474, 925

CRTSCTS常量, 675, 686

CRTS_IFLOW常量, 675, 686

CRTSXOFF常量, 675, 686

crypt函数, 287, 298, 304, 442

crypt程序, 298, 700

CS5常量, 684, 686

CS6常量, 684, 686

CS7常量, 684, 686

CS8常量, 684, 686, 706~708

.cshrc文件, 289

CSIZE常量, 675, 684, 686, 706~707

csopen函数, 653~654

函数定义, 654, 659

CSRG(Computing Science Research Group,计算科学研究组, 34

CSTOPB常量, 675, 686

ctermid函数, 442, 452, 694, 700~701

函数定义, 694

ctime函数, 192

<ctype.h>头文件, 27

cu程序, 500

cupsd程序, 465, 793

current directory(当前目录), 4~5, 8, 13, 43, 50, 65, 94, 100,

115~117, 120, 127, 130, 135~137, 178, 211, 233, 252,

315, 317, 466

Curses, 32

curses库, 712~713, 949, 953

cuserid函数, 276

D

daemon(守护进程), 463~480

coding(守护进程编码), 466~469

conventions(守护进程惯例), 474~4739

error logging(守护进程错误日志), 469~473

daemonize函数, 466, 468, 480, 616, 618, 623, 664, 815,

896, 929~930

函数定义, 467

Dang, X. T., 206, 949

Darwin, 35

dash程序, 372

data, out-of-band(带外数据), 626

data segment

initialized(初始化的数据段), 205

uninitialized(未初始化的数据段), 205

data transfer(数据传输), 610~623

data types, primitive system(基本系统数据类型), 58

database library(数据库函数库), 743~787

coarse-grained locking(粗粒度锁), 752

concurrency(并发), 752~ 753

fine-grained locking(细粒度锁), 752

implementation(实现), 746~750

performance(性能), 781~786

source code(源代码), 753~ 781

database transactions(数据库事务), 952

Date, C. J., 753, 949

date functions, time and(时间和日期函数), 189~196

date程序, 192, 196, 371, 919, 944

DATEMSK环境变量, 211

db库, 744, 952

DB结构, 756~758, 760~762, 765~768, 773, 776, 782

_db_alloc函数, 757, 760~761

函数定义, 760

db_close函数, 745, 749, 754, 761

函数定义, 745, 761

db_delete函数, 746, 752, 754, 768~769, 771, 945

函数定义, 746, 768

_db_dodelete函数, 757, 768~769, 772, 776, 780~781,

787, 944~945

函数定义, 769

db_fetch函数, 745, 748~749, 752, 754, 762, 767

函数定义, 745, 762

_db_find_and_lock 函数, 757, 762~763, 767~768,

774~775, 777, 786

函数定义, 763

_db_findfree函数, 757, 775, 777~778, 781

函数定义, 777

_db_free函数, 757~758, 761

函数定义, 761

DBHANDLE数据类型, 749, 754, 757, 761~762, 768, 774, 779

_db_hash函数, 757, 764, 787

函数定义, 764

DB_INSERT常量, 745, 749, 754, 774, 776

dbm库, 743~744, 952

dbm_clearerr函数, 442

dbm_close函数, 442, 452

dbm_delete函数, 442, 452

dbm_error函数, 442

dbm_fetch函数, 442, 452

dbm_firstkey函数, 442

dbm_nextkey函数, 442, 452

dbm_open函数, 442, 452

dbm_store函数, 442, 452

db_nextrec函数, 746, 750, 752, 754, 769, 779, 781, 787,

944~945

函数定义, 746, 779

db_open函数, 745~746, 749, 752, 754~757, 759~761, 781

函数定义, 745, 757

_db_readdat函数, 757, 762, 768, 780, 945

函数定义, 768

_db_readidx函数, 757, 764~765, 778, 780, 945

函数定义, 765

_db_readptr函数, 757, 763, 765, 770, 775~777, 787

函数定义, 765

DB_REPLACE常量, 745, 754, 774

db_rewind函数, 746, 754, 760, 779, 781

函数定义, 746, 779

DB_STORE常量, 745, 754, 774

db_store函数, 745, 747, 749, 752, 754, 769, 771, 774,

781, 787

函数定义, 745, 774

_db_writedat函数, 757, 769, 771~772, 775~777, 781,

787, 944~945

函数定义, 771

_db_writeidx函数, 522, 757, 759, 770, 772, 775~776,

781, 787, 945

函数定义, 772

_db_writeptr函数, 757, 759, 770, 773, 775~776, 778

函数定义, 773

dcheck程序, 122

dd程序, 275

deadlock(死锁), 234, 402, 490, 552, 721

avoidance(避免死锁), 402~407

record locking(记录锁死锁), 490

Debian Almquist shell, 4, 53

Debian Linux distribution, 4

delayed write(延迟写), 81

DELAYTIMER_MAX常量, 40, 43

descriptor set(描述符集), 503, 505, 532, 933

detachstate attribute(分离状态属性), 427~428

/dev/fd设备, 88~89, 142, 696

/dev/fd/0设备, 89

/dev/fd/1设备, 89, 142/dev/fd/2设备, 89

device number(设备号)

major(主设备号), 58~59, 137, 139, 465, 699

minor(次设备号), 58~59, 137, 139, 465, 699

device special file(设备特殊文件), 137~139

/dev/klog设备, 470

/dev/kmem设备, 68

/dev/log设备, 470, 480, 928

/dev/null设备, 73, 86, 304

/dev/stderr设备, 89, 697

/dev/stdin设备, 89, 697

/dev/stdout设备, 89, 697

dev_t数据类型, 59, 137~138

devtmpfs文件系统, 139

/dev/tty设备, 298, 304, 312, 694, 700, 740

/dev/tty1文件, 290

/dev/zero设备, 576~578

df程序, 141, 910

DIR结构, 7, 131, 283, 697, 822

directories(目录)

files and(文件和目录), 4~8

hard links and, 117, 120

reading(读目录), 130~135

directory(目录), 4

current(当前目录), 4~5, 8, 13, 43, 50, 65, 94, 100,

115~117, 120, 127, 130, 135~137, 178, 211, 233, 252,

315, 317, 466

file(文件目录), 95

home(起始目录), 2, 8, 135, 211, 288, 292

ownership(目录所有权), 101~102

parent(父目录), 4, 108, 125, 129

root(根目录), 4, 8, 24, 139, 141, 233, 252, 283, 910

Directory Services daemon(目录服务守护进程), 185

dirent结构, 5, 7, 131, 133, 697, 822

<dirent.h>头文件, 7, 29, 131

dirname函数, 442

DISCARD terminal character(DISCARD终端字符), 678,

680, 687

dlclose函数, 452

dlerror函数, 442

<dlfcn.h>头文件, 29

dlopen函数, 452

do_driver函数, 732, 739

函数定义, 739

Dorward, S., 229, 952

DOS, 57, 65

dot, 见current directory

dot-dot, 见parent directory

dprintf函数, 159, 452, 945

函数定义, 159

drand48函数, 442

DSUSP terminal character(DSUSP 终端字符), 678, 680, 688

dtruss程序, 497

du程序, 111, 141, 909

Duff, T., 88

dup函数, 52, 61, 74, 77, 79~81, 148, 164, 231, 331, 468,

492~493, 592~593, 907~908, 921

函数定义, 79

dup2函数, 64, 79~81, 90, 148, 331, 539, 544, 550~551, 592,

618~619, 655, 728~729, 739~740, 907~908

函数定义, 79

E

E2BIG错误, 564

EACCES错误, 14~15, 474, 487, 499, 918

EAGAIN错误, 16, 376, 474, 482, 484, 487, 496~497, 499,

514, 563, 569~570, 581, 609, 627

EBADF错误, 52, 916

EBUSY错误, 16, 400, 410, 418

ECANCELED错误, 515

ECHILD错误, 308, 326, 345, 508

ECHO常量, 676, 686~687, 701, 705~707, 731

echo程序, 203

ECHOCTL常量, 676, 686

ECHOE常量, 676, 686~687, 701, 731

ECHOK常量, 676, 687, 701, 731

ECHOKE常量, 676, 687

ECHONL常量, 676, 687, 701, 731

ECHOPRT常量, 676, 686~687

ed程序, 367, 369~370, 496~497

EDEADLK错误, 418

EEXIST错误, 121, 558, 584

EFBIG错误, 925

effective

group ID(有效组ID), 98~99, 101~102, 108, 110, 140,

183, 228, 233, 256, 258, 558, 587

user ID(有效用户ID), 98~99, 101~102, 106, 110, 126,

140, 228, 233, 253, 256~260, 276, 286, 288, 337, 381,

558, 562, 568, 573, 586~587, 637, 640, 809, 918

efficiency

I/O(I/O效率), 72~74

standard I/O(标准I/O效率), 153~156

EIDRM错误, 562~564, 568~570, 579

EINPROGRESS错误, 519~520, 608

EINTR错误, 16, 265~266, 301, 327~329, 339, 359, 370, 502,

508, 514, 545~546, 563~564, 569~570, 620

EINVAL错误, 42, 47~48, 345, 389, 543, 545~546, 705~707,

774, 914

EIO错误, 309, 321, 823~824, 826~827

ELOOP错误, 121~122

EMFILE错误, 544, 546

EMSGSIZE错误, 610

ENAMETOOLONG错误, 65, 637, 640

encrypt函数, 442

endgrent函数, 183~184, 442, 452

函数定义, 183

endhostent函数, 452, 597

函数定义, 597

endnetent函数, 452, 598

函数定义, 598

endprotoent函数, 452, 598

函数定义, 598

endpwent函数, 180~181, 442, 452

函数定义, 180

endservent函数, 452, 599

函数定义, 599

endspent函数, 182

函数定义, 182

endutxent函数, 442, 452

ENFILE错误, 16

ENOBUFS错误, 16

ENOENT错误, 15, 170, 445, 745, 774

ENOLCK错误, 16

ENOMEM错误, 16, 914

ENOMSG错误, 564

ENOSPC错误, 16, 445

ENOTDIR错误, 592

ENOTRECOVERABLE错误, 433

ENOTTY错误, 683, 693

environ变量, 203~204, 211, 213, 251, 255, 444~445, 450, 920

environment list(环境列表), 203~204, 233, 251, 286~288

environment variable(环境变量), 210~213

COLUMNS, 211

DATEMSK, 211

HOME , 210~211, 288

IFS, 269

LANG, 41, 211

LC_ALL, 211

LC_COLLATE, 43, 211

LC_CTYPE, 211

LC_MESSAGES, 211

LC_MONETARY, 211

LC_NUMERIC, 211

LC_TIME, 211

LD_LIBRARY_PATH, 753

LINES, 211

LOGNAME, 211, 276, 288

MAILPATH, 210

MALLOC_OPTIONS, 928

MSGVERB, 211

NLSPATH, 211

PAGER, 539, 542~5435

PATH , 100, 211, 250~251, 253, 260, 263, 265, 288~289

POSIXLY_CORRECT, 111

PWD, 211

SHELL , 211, 288, 737

TERM, 211, 287, 289

TMPDIR, 211

TZ, 190, 192, 195~196, 211, 919

USER, 210, 288

ENXIO错误, 553

EOF 常量, 10, 151~152, 154, 164, 175, 545, 547~548,

550~551, 664, 730, 913

EOF terminal character(EOF终端字符), 678, 680, 686~687,

700, 703

EOL terminal character(EOL终端字符), 678, 680, 687, 700, 703

EOL2 terminal character(EOL2 终端字符), 678, 680, 687,

700, 703

EOWNERDEAD错误, 432

EPERM错误, 256

EPIPE错误, 537, 937

Epoch(特定时间,指1970年1月1日00:00:00), 20, 22,

126, 187, 189~190, 640

ERANGE错误, 50

ERASE terminal character(ERASE终端字符), 678, 680,

686~687, 702~703

ERASE2 terminal character(ERASE终端字符), 678, 681

err_cont函数, 897, 899

函数定义, 900

err_dump函数, 366, 767, 897, 899

函数定义, 900

err_exit函数, 809, 897, 899

函数定义, 900

err_msg函数, 897, 899

函数定义, 901

errno变量, 14~15, 42, 50, 55, 65, 67, 81, 121, 144, 256,

265, 277, 301, 309, 314, 321, 327~328, 330~331, 333, 337,

339, 345, 351, 359, 371, 376, 380, 384, 386, 446~447, 454,

471, 474, 482, 484, 487, 499, 502, 508, 513~514, 537, 546,

553, 564, 568, 579, 581, 584, 592, 608~610, 627, 637~638,

640, 683, 693, 745, 805, 899, 925, 937

<errno.h>头文件, 14~16, 27

error

handling(错误处理), 14~16

logging, daemon(守护进程记录错误日志), 469~473

recovery(错误恢复), 16

routines, standard(标准错误例程), 898~904

TOCTTOU, 65, 250, 953

err_quit函数, 7, 815, 897, 899, 912

函数定义, 901

err_ret函数, 897, 899, 912

函数定义, 899

err_sys函数, 7, 897, 899

函数定义, 899

ESPIPE错误, 67, 592

ESRCH错误, 337

/etc/gettydefs文件, 290

/etc/group文件, 17~18, 177, 185~186

/etc/hosts文件, 186, 795

/etc/init目录, 290

/etc/inittab文件, 290

/etc/master.passwd文件, 185

/etc/networks文件, 185~186

/etc/passwd文件, 2, 99, 135, 177~178, 180, 182, 185~186

/etc/printer.conf文件, 794~795, 799

/etc/protocols文件, 185~186

/etc/pwd.db文件, 185

/etc/rc文件, 189, 291

/etc/services文件, 185~186

/etc/shadow文件, 99, 185~186

/etc/spwd.db文件, 185

/etc/syslog.conf文件, 470

/etc/termcap文件, 712

/etc/ttys文件, 286

ETIME错误, 800, 805

ETIMEDOUT错误, 407, 413, 415, 581, 800

Evans, J., 949

EWOULDBLOCK错误, 16, 482, 609, 627

exec函数, 10~11, 13, 23, 39~40, 43, 79, 82, 100, 121, 125,

197, 201, 203, 225, 229, 233~234, 249~257, 260~261,

264~266, 269~271, 275, 277, 282~283, 286~288,

290~292, 294, 305, 325, 372, 457, 479, 492, 527, 533,

538, 541, 557, 585, 653~654, 658~659, 669, 716~717,

721, 723, 727, 739, 742, 920, 928, 948

execl函数, 249~251, 261, 265~266, 272, 274~275, 283, 288,

331, 370~371, 539, 544, 550~551, 618, 655, 737, 922

函数定义, 249

execle函数, 249~251, 254, 287, 331

函数定义, 249

execlp函数, 12~13, 19, 249~251, 253~254, 264~265, 283,

740, 922

函数定义, 249

execv函数, 249~251, 331

函数定义, 249

execve函数, 249~251, 253, 331, 922

函数定义, 249

execvp函数, 249~251, 253, 731~732

函数定义, 249

exercises, solutions to(习题答案), 905~945

_Exit函数, 198, 201, 236~237, 239, 331, 365, 367, 388, 447

函数定义, 198

_exit函数, 198, 201, 235~239, 265~266, 282~283, 331,

365, 367, 370, 381, 388, 447, 921, 924

函数定义, 198

exit函数, 7, 150, 154, 198~202, 226, 231, 234~239, 246, 249,

265, 271~272, 274~275, 283, 288, 330, 365~366, 388, 447,

466, 542, 705, 732, 742, 817, 830, 895, 920~921, 944

函数定义, 198

exit handler(退出处理程序), 200

expect程序, 720, 739~740, 951

exponential backoff(指数补偿), 606

ext2文件系统, 129

ext3文件系统, 129

ext4文件系统, 73, 86, 129, 465

EXTPROC常量, 676, 687

F

faccessat函数, 102~104, 331, 452

函数定义, 102

Fagin, R., 744, 750, 949

Fast-STREAMS, Linux, 534

fatal error(致命性错误), 16

fchdir函数, 135~137, 592

函数定义, 135

fchmod函数, 106~108, 120, 125, 331, 452, 498, 592

函数定义, 106

fchmodat函数, 106~108, 331, 452

函数定义, 106

fchown函数, 109~110, 125, 331, 452, 592

函数定义, 109

fchownat函数, 109~110, 331, 452

函数定义, 109

fclose函数, 148~150, 172~174, 199, 201, 365, 367, 452,

545, 701, 803

函数定义, 150

fcntl函数, 61, 77, 80~87, 90, 112, 148, 164, 252~253, 331,

451~452, 480, 482, 485~490, 492, 494~495, 510~511,

592, 626~627, 783, 785, 939, 944

函数定义, 82

<fcntl.h>头文件, 29, 62

fdatasync函数, 81, 86~87, 331, 451, 513, 592

函数定义, 81

FD_CLOEXEC常量, 63, 79, 82~83, 252, 480

FD_CLR函数, 503~504, 665, 933

函数定义, 503

FD_ISSET函数, 503~504, 665, 817, 933

函数定义, 503

fdopen函数, 148~150, 159, 544, 936

函数定义, 148

fdopendir函数, 130~135

函数定义, 130

fd-pipe(fd管道), 653~654, 656, 658

fd_pipe函数, 630, 655, 739, 896

函数定义, 630

fd_set 数据类型, 59, 503~504, 532, 664, 805, 814,

816~817, 932~933, 939

FD_SET函数, 503~504, 664~665, 805, 816, 933

函数定义, 503

_ _FD_SETSIZE常量, 933

FD_SETSIZE常量, 504, 932~933

F_DUPFD常量, 81~83, 592

F_DUPFD_CLOEXEC常量, 82, 592

FD_ZERO函数, 503~504, 664, 805, 933

函数定义, 503

feature test macro(功能测试宏), 57~58, 84

Fenner, B., 157, 291, 470, 589, 952

<fenv.h>头文件, 27

feof函数, 151, 157

函数定义, 151

ferror函数, 10, 151, 154, 157, 273, 538, 543, 550

函数定义, 151

fexecve函数, 249~250, 253, 331

函数定义, 249

FF0常量, 687

FF1常量, 687

FFDLY常量, 676, 684, 687, 689

fflush 函数, 145, 147, 149, 172, 174~175, 366, 452,

547~548, 552, 702, 721, 901, 904, 913

函数定义, 147

F_FREESP常量, 112

fgetc函数, 150~151, 154~155, 452

函数定义, 150

F_GETFD常量, 82~83, 480, 592

F_GETFL常量, 82~85, 592

F_GETLK常量, 82, 486~490

F_GETOWN常量, 82~83, 592, 626

fgetpos函数, 157~159, 452

函数定义, 158

fgets函数, 10, 12, 19, 150, 152~156, 168, 174~175, 214,

216, 452, 538, 543, 548, 550~552, 616, 622, 654, 738,

753, 803, 845, 911, 913, 936

函数定义, 152

fgetwc函数, 452

fgetws函数, 452

FIFOs, 95, 534, 552~556

file

access permissions(文件访问权限), 99~101, 140

block special(块特殊文件), 95, 138~139

character special(字符特殊文件), 95, 138~139, 699

descriptor passing(文件描述符传递), 587, 642~652

descriptors(文件描述符), 8~10, 61~62

device special(设备特殊文件), 137~139

directory(目录文件), 95

group(组文件), 182~183

holes(文件空洞), 68~69, 111~112

mode creation mask(文件模式创建屏蔽字), 104~105,

129, 141, 169, 233, 252, 466

offset(文件偏移量), 66~68, 74, 77~78, 80, 231~232, 494,

522, 747~748, 908

ownership(文件所有权), 101~102

pointer(文件指针), 144

regular(普通文件), 95

sharing(文件共享), 74~77, 231

size(文件大小), 111~112

times(文件时间), 124~125, 532

truncation(文件截断), 112

types(文件类型), 95~98

FILE结构, 131, 143~144, 151, 164, 168, 171~172, 220, 235,

273, 443~444, 538, 542~543, 545, 547, 622, 701, 754,

803, 914, 929

file system(文件系统), 4, 113~116

devtmpfs, 139

ext2, 129

ext3, 129

ext4, 73, 86, 129, 465

HFS, 87, 113, 116

HSFS, 113

PCFS, 49, 57, 113

S5, 65

UFS, 49, 57, 65, 113, 116, 129

filename(文件名), 4

truncation(文件名截断), 65~66

FILENAME_MAX常量, 38

fileno函数, 164, 545, 701, 913

函数定义, 164

_FILE_OFFSET_BITS常量, 70

FILEPERM常量, 800, 825

files and directories(文件和目录), 4~8

FILESIZEBITS常量, 39, 44, 49

find程序, 124, 135, 252

finger程序, 141, 179, 910

FIOASYNC常量, 627, 939~940

FIOSETOWN常量, 627

FIPS, 32~33

Flandrena, B., 229, 952

<float.h>头文件, 27, 38

flock函数, 485

flock结构, 486, 489~490, 494

flockfile函数, 443~444

函数定义, 443

FLUSHO常量, 676, 680, 687

fmemopen函数, 171~175, 913

函数定义, 171

fmtmsg函数, 211, 452

<fmtmsg.h>头文件, 30

FNDELAY常量, 482

<fnmatch.h>头文件, 29

F_OK常量, 102

follow_link函数, 48

fopen函数, 6, 144, 148~150, 165, 220, 273, 452, 538~539,

542, 701, 803, 929

函数定义, 148

FOPEN_MAX常量, 38, 43

foreground process group(前台进程组), 296, 298, 300~303,

306, 311, 318~322, 369, 377, 680~682, 685, 689, 710,

719, 741, 944

foreground process group ID(前台进程组ID), 298, 303, 677

fork函数, 11~13, 19, 23, 77, 228~237, 241~243, 245~249,

254, 260~261, 264~266, 269~272, 274~275, 277, 282,

286, 288, 290~292, 294, 296, 304, 307~308, 312, 326,

331, 334, 370~372, 381, 457~462, 466~469, 471, 479,

491~493, 498~500, 527, 533~539, 541, 544, 546, 550,

557, 565, 577, 585, 588, 618~619, 642, 653~655, 658~659,

669~670, 716, 721, 723~724, 726~728, 732, 739, 781,

922~923, 927~928, 930~931, 934, 937, 939, 948

函数定义, 229

fork1函数, 229

forkall函数, 229

Fowler, G. S., 135, 949, 953

fpathconf函数, 37, 39, 41~48, 53~55, 65, 110, 452, 537, 679

函数定义, 42

FPE_FLTDIV常量, 353

FPE_FLTINV常量, 353

FPE_FLTOVF常量, 353

FPE_FLTRES常量, 353

FPE_FLTSUB常量, 353

FPE_FLTUND常量, 353

FPE_INTDIV常量, 353

FPE_INTOVF常量, 353

fpos_t数据类型, 58, 157

fprintf函数, 159, 452

函数定义, 159

fputc函数, 145, 152, 154~155, 452

函数定义, 152

fputs函数, 146, 150, 152~156, 164, 168, 174~175, 452,

543, 548, 550, 701, 901, 904, 911, 919, 926, 936

函数定义, 153

fputwc函数, 452

fputws函数, 452

F_RDLCK常量, 486~487, 489~490, 897, 930~931

fread函数, 150, 156~157, 269, 273, 452

函数定义, 156

free函数, 163, 174, 207~209, 330, 332, 401, 403~405, 407,

437~438, 450, 697, 762, 829, 833, 837, 842, 917

函数定义, 207

freeaddrinfo函数, 599, 833

函数定义, 599

FreeBSD , 3~4, 21, 26~27, 29~30, 34~36, 38, 49, 57, 60, 62, 64, 68,

70, 81, 83, 88, 95, 102, 108~111, 121, 129, 132, 138, 175, 178,

182, 184~185, 187~188, 209~212, 222, 225, 229, 240, 245,

253, 257, 260, 262, 269, 271, 276~277, 288~289, 292, 298,

303, 310, 314~316, 319, 322, 329, 334, 351, 355, 358, 371,

373, 377, 379~380, 385, 388, 393, 396, 409, 426~427, 433,

439, 473, 485, 492~493, 497, 499, 503, 527, 534, 559, 561,

567, 572, 576, 594~595, 607, 611~613, 627, 634, 648~649,

652, 675~678, 685~691, 716, 724, 726~727, 740~741, 744,

799, 911, 918, 930, 932~933, 935~936, 949, 951

freopen函数, 144, 148~140, 452

函数定义, 148

frequency scaling(频率调整), 785

fscanf函数, 162, 452

函数定义, 162

fsck程序, 122

fseek函数, 149, 157~159, 172, 452

函数定义, 158

fseeko函数, 157~159, 172, 452

函数定义, 158

F_SETFD常量, 82, 85, 90, 480, 592, 907

F_SETFL常量, 82~83, 85, 90, 511, 592, 627, 907, 944

F_SETLK常量, 82, 486~488, 490, 494, 897, 930~931

F_SETLKW常量, 82, 486, 488, 490, 897, 931

F_SETOWN常量, 82~83, 510, 592, 626~627, 939

fsetpos函数, 149, 157~159, 172, 452

函数定义, 158

fstat 函数, 4, 93~95, 120, 331, 452, 494, 498, 518,

529~530, 535, 586, 592, 698, 759, 808, 833

函数定义, 93

fstatat函数, 93~95, 331, 452

函数定义, 93

fsync函数, 61, 81, 86~87, 175, 331, 451, 513, 517, 528,

592, 787, 913

函数定义, 81

ftell函数, 157~159, 452

函数定义, 157

ftello函数, 157~159, 452

函数定义, 158

ftok函数, 557~558

函数定义, 557

ftpd程序, 472, 928

ftruncate函数, 112, 125, 331, 529~530, 592

函数定义, 112

ftrylockfile函数, 443~444

函数定义, 443

fts函数, 132

ftw函数, 122, 130~135, 131, 141

<ftw.h>头文件, 30

full-duplex pipes(全双工管道), 534

named(命名全双工管道), 496

timing(全双工管道的时间), 565

function prototypes(函数原型), 845~893

functions, system calls versus(系统调用与函数), 21~23

F_UNLCK常量, 486~487, 489~490, 897

funlockfile函数, 443~444

函数定义, 443

funopen函数, 175, 915

futimens函数, 125~128, 331, 452, 910

函数定义, 126

fwide函数, 144

函数定义, 144

fwprintf函数, 452

fwrite函数, 150, 155~157, 382, 452, 925

函数定义, 156

F_WRLCK常量, 486~487, 489~490, 494, 897, 931

fwscanf函数, 452

G

gai_strerror函数, 600, 616, 619, 621, 623

函数定义,600

Gallmeister, B. O., 949

Garfinkel, S., 181, 250, 298, 949

gather write(聚集写), 521, 644

gawk程序, 262

gcc程序, 6, 26, 58, 919

gdb程序, 928

gdbm库, 744

generic pointer(通用指针), 71, 208

getaddrinfo函数, 452, 599~601, 603~604, 614~616, 619,

621, 623, 802, 808

函数定义, 599

getaddrlist函数, 452, 599~601, 603~604, 614~616, 619,

621, 623, 802, 808

函数定义, 802

GETALL常量, 568

getc函数, 150~156, 164~165, 452, 701~702, 913

函数定义, 150

getchar函数, 150~151, 164, 175, 452, 547, 913

函数定义, 150

getchar_unlocked函数, 442, 444, 452

函数定义, 444

getconf程序, 70

getc_unlocked函数, 442, 444, 452

函数定义, 444

getcwd函数, 50, 135~137, 142, 208, 452, 911~912

函数定义, 136

getdate函数, 211, 442, 452

getdelim函数, 452

getegid函数, 228, 331

函数定义, 228

getenv函数, 204, 210~212, 442, 444~446, 449~450, 462,

539, 928

函数定义, 210

getenv_r函数, 445~446 geteuid函数, 228, 257, 268, 331, 650, 809

函数定义, 228

getgid函数, 17, 228, 331

函数定义, 228

getgrent函数, 183~184, 442, 452

函数定义, 183

getgrgid函数, 182, 442, 452

函数定义, 182

getgrgid_r函数, 443, 452

getgrnam函数, 182, 442, 452

函数定义, 182

getgrnam_r函数, 443, 452

getgroups函数, 184, 331

函数定义, 184

gethostbyaddr函数, 597, 599

gethostbyname函数, 597, 599

gethostent函数, 442, 452, 597

函数定义, 597

gethostid函数, 452

gethostname函数, 39~40, 43, 188, 452, 616~618, 623, 815

函数定义, 188

getline函数, 452

getlogin函数, 275~276, 442, 452, 480, 929~930

函数定义, 275

getlogin_r函数, 443, 452

getmsg函数, 740

getnameinfo函数, 452, 600

函数定义, 600

GETNCNT常量, 568

getnetbyaddr函数, 442, 452, 598

函数定义, 598

getnetbyname函数, 442, 452, 598

函数定义, 598

getnetent函数, 442, 452, 598

函数定义, 598

get_newjobno函数, 814, 820, 825, 843

函数定义, 820

getopt函数, 442, 452, 662~664, 669, 730~731, 807~808

函数定义, 662

getpass函数, 287, 298, 700, 702~703

函数定义, 701

getpeername函数, 331, 605

函数定义, 605

getpgid函数, 293~294

函数定义, 294

getpgrp函数, 293, 331

函数定义, 293

GETPID常量, 568

getpid函数, 11, 228, 230, 235, 272, 308, 331, 366, 378,

387, 474, 650, 939

函数定义, 228

getppid函数, 228~229, 331, 491, 732

函数定义, 228

get_printaddr函数, 800, 804, 819

函数定义, 804

get_printserver函数, 800, 804, 808

函数定义, 804

getpriority函数, 277

函数定义, 277

getprotobyname函数, 442, 452, 598

函数定义, 598

getprotobynumber函数, 442, 452, 598

函数定义, 598

getprotoent函数, 442, 452, 598

函数定义, 598

getpwent函数, 180~181, 442, 452

函数定义, 180

getpwnam函数, 177~181, 186, 276, 287, 330~332, 442,

452, 816, 918

函数定义, 179~180

getpwnam_r函数, 443, 452

getpwuid函数, 177~181, 186, 275~276, 442, 452, 809, 918

函数定义, 179

getpwuid_r函数, 443, 452

getresgid函数, 257

getresuid函数, 257

getrlimit函数, 53, 220, 224, 466~467, 906~907

函数定义, 220

getrusage函数, 245, 280

gets函数, 152~153, 911

函数定义, 152

getservbyname函数, 442, 452, 599

函数定义, 599

getservbyport函数, 442, 452, 599

函数定义, 599

getservent函数, 442, 452, 599

函数定义, 599

getsid函数, 296

函数定义, 296

getsockname函数, 331, 605

函数定义, 605

getsockopt函数, 331, 624~625

函数定义, 624

getspent函数, 182

函数定义, 182

getspnam函数, 182, 918

函数定义, 182

gettimeofday函数, 190, 414, 421, 437, 439

函数定义, 190

getty程序, 238, 286~288, 290, 472

gettytab文件, 287

getuid函数, 17, 228, 257, 268, 275~276, 331

函数定义, 228

getutxent函数, 442, 452

getutxid函数, 442, 452

getutxline函数, 442, 452

GETVAL常量, 568

getwc函数, 452

getwchar函数, 452

GETZCNT常量, 568

Ghemawat, S., 949

GID, 见group ID

gid_t数据类型, 59

Gingell, R. A., 206, 525, 949

glob函数, 452

global variables(全局变量), 219

<glob.h>头文件, 29

gmtime函数, 191~192, 442

函数定义, 192

gmtime_r函数, 443

GNU , 2, 289, 753

GNU Public License(GNU公用许可证), 35

Goodheart, B., 712, 949

Google, 210

goto, nonlocal(非本地goto跳转), 213~220, 355~358

grantpt函数, 723~725

函数定义, 723

grep程序, 20, 174, 200, 252, 949~950

group file(组文件), 182~183

group ID(组ID), 17, 255~260

effective(有效组ID), 98~99, 101~102, 108, 110, 140, 183,

228, 233, 256, 258, 558, 587

real(实际组ID), 98, 102, 183, 228, 233, 252~253, 256, 270, 585

supplementary(附属组 ID), 18, 39, 98, 101, 108, 110,

183~184, 233, 252, 258

group结构, 182

<grp.h>头文件, 29, 182, 186

guardsize属性, 427, 430

H

hack, 303, 842

half-duplex pipes(半双工管道), 534

handle_request函数, 656, 665~666, 668

函数定义, 657, 668

hard link(硬链接), 4, 114, 117, 120, 122

hard links and directories(硬链接和目录), 117, 120

hcreate函数, 442

hdestroy函数, 442

headers

optional(可选头文件), 30

POSIX required(POSIX要求的头文件), 29

standard(标准头文件), 27

XSI option(XSI可选头文件), 30

heap(堆), 205

Hein, T. R., 951

Hewlett-Packard , 35, 835

HFS文件系统, 87, 113, 116

holes, file(文件空洞), 68~69, 111~112

home directory(起始目录), 2, 8, 135, 211, 288, 292

HOME环境变量, 210~211, 288

hostent结构, 597

hostname程序, 189

HOST_NAME_MAX常量, 40, 43, 49, 188, 615~618, 622~623,

800, 815

HP-UX, 35

hsearch函数, 442

HSFS文件系统, 113

htonl函数, 594, 810, 824~827, 834

函数定义, 594

htons函数, 594, 831, 834

函数定义, 594

HTTP(Hypertext Transfer Protocol,超文本传输协议),

792~793

Hume, A. G., 174, 949

HUPCL常量, 675, 687

Hypertext Transfer Protocol, 见HTTP

I

IBM(International Business Machines,国际商业机器公司), 35

ICANON 常量, 676, 678, 680~682, 686~687, 691, 703,

705~707

iconv_close函数, 452

<iconv.h>头文件, 29

iconv_open函数, 452

ICRNL常量, 676, 680, 688, 700, 706~708

identifiers

IPC(IPC标识符), 556~558

process(进程标识符), 227~228

IDXLEN_MAX常量, 779

IEC(International Electrotechnical Commission,国际电工

委员会), 25

IEEE(Institute for Electrical and Electronic Engineers,电气

和电子工程师学会), 26~27, 950

IEXTEN常量, 676, 678, 680~682, 688, 706~708

I_FIND常量, 725~726

IFS环境变量, 269

IGNBRK常量, 676, 685, 688

IGNBRK常量, 676, 680, 688, 700

IGNPAR常量, 676, 688, 690

ILL_BADSTK常量, 353

ILL_COPROC常量, 353

ILL_ILLADR常量, 353

ILL_ILLOPC常量, 353

ILL_ILLOPN常量, 353

ILL_ILLTRP常量, 353

ILL_PRVOPC常量, 353

ILL_PRVREG常量, 353

IMAXBEL常量, 676, 688

implementation differences, password(口令文件实现区别),

184~185

implementations, UNIX System(UNIX系统实现), 33

IMAXBEL常量, 605

in_addr_t数据类型, 595

incore(主存), 74, 152

INET6_ADDRSTRLEN常量, 596

inet_addr函数, 596

INET_ADDRSTRLEN常量, 596, 603~604

inetd程序, 291, 293, 465, 470, 472

inet_ntoa函数, 442, 596

inet_ntop函数, 596, 604

函数定义, 596

inet_pton函数, 596

函数定义, 596

INFTIM常量, 508

init程序, 187, 189, 228, 237~238, 246, 270, 286~291, 293,

307, 309, 312, 320, 337, 379, 464~465, 475, 923, 930

initgroups函数, 184, 288

函数定义, 184

initialized data segment(初始化的数据段), 205

init_printer函数, 814, 816, 819, 833

函数定义, 819

init_request函数, 814, 816, 818

函数定义, 818

initserver函数, 615~617, 619, 622~623, 800, 816

函数定义, 609, 625

inittab文件 , 320

INLCR常量, 676, 688

i-node(i节点), 59, 75~77, 94, 108, 113~116, 120, 124, 127,

130~131, 138~139, 179, 253, 493, 698, 905, 910

ino_t数据类型, 59, 114

INPCK常量, 676, 688, 690, 706~708

in_port_t数据类型, 595

Institute for Electrical and Electronic Engineers, 见IEEE

int16_t数据类型, 831

International Business Machines, 见IBM

International Electrotechnical Commission, 见IEC

International Standards Organization, 见ISO

Internet Printing Protocol, 见IPP

Internet worm(因特网蠕虫), 153

interpreter file(解释文件), 260~264, 283

interprocess communication, 见IPC

interrupted system calls(中断的系统调用), 327~330, 343,

351, 354~355, 365, 508

INT_MAX常量, 37~38

INT_MIN常量, 37~38

INTR terminal character(INTR终端字符), 678, 681, 688, 701

<inttypes.h>头文件, 27

I/O

asynchronous(异步I/O), 501, 509~520

asynchronous socket(异步套接字I/O), 627

efficiency(I/O效率), 72~74

library, standard(标准I/O库), 10, 143~175

memory-mapped(内存映像I/O), 525~531

multiplexing(I/O多路转接), 500~509

nonblocking(非阻塞I/O), 481~484

nonblocking socket(非阻塞套接字I/O), 608~609, 627

terminal(终端I/O), 671~713

unbuffered(不带缓冲的I/O), 8, 61~91

IOBUFSZ常量, 836

ioctl函数, 61, 87~88, 90, 297~298, 322, 328~329, 452,

482, 510, 562, 592, 627, 674, 710~711, 718~719,

725~728, 730, 740~742, 939~940

函数定义, 87

_IOFBF常量, 147

_IOLBF常量, 147, 166, 220

_IO_LINE_BUF常量, 165

_IONBF常量, 147, 166

_IO_UNBUFFERED常量, 165

iovec结构, 41, 43, 521, 611, 646~647, 649, 651, 655, 659,

765, 771~772, 832, 836

IOV_MAX常量, 41, 43, 49, 521

IPC(interprocess communication,进程间通信), 533~588,

629~670

identifiers(IPC标识符), 556~558

key(IPC键), 556~558, 562, 567, 572

XSI , 556~560

IPC_CREAT常量, 558, 632, 941

IPC_EXCL常量, 558

IPC_NOWAIT常量, 563~564, 569~570

ipc_perm结构, 558, 562, 567, 572, 587

IPC_PRIVATE常量, 557~558, 575, 586, 588

ipcrm程序, 559

IPC_RMID常量, 562~563, 568, 573~575

ipcs程序, 559, 588

IPC_SET常量, 562~563, 568, 573

IPC_STAT常量, 562~563, 568, 573

IPP(Internet Printing Protocol,因特网打印协议), 789~792

ipp.h头文件, 843

ipp_hdr结构, 798, 832, 834, 838, 842

IPPROTO_ICMP常量, 591

IPPROTO_IP常量, 591, 624

IPPROTO_IPV6常量, 591

IPPROTO_RAW常量, 591, 602

IPPROTO_TCP常量, 591, 602, 624

IPPROTO_UDP常量, 591, 602

I_Push常量, 725~726

IRIX, 35

isalpha函数, 516

isatty函数, 679, 695, 698~699, 711, 730, 738

函数定义, 695

isdigit函数, 839~840

I_SETSIG常量, 510

ISIG常量, 676, 678, 680~682, 688, 706~708

ISO(International Standards Organization,国际标准化组

织), 25~27, 950

ISO C , 25~26, 153, 950

<iso646.h>头文件, 27

is_read_lockable函数, 490, 897

isspace函数, 839~840

ISTRIP常量, 676, 688, 690, 706~708

is_write_lockable函数, 490, 897

IUCLC常量, 676, 688

IUTF8常量, 676, 689

IXANY常量, 676, 689

IXOFF常量, 676, 681~682, 689

IXON常量, 676, 681~682, 689, 706~708

J

jemalloc, 210

jmp_buf数据类型, 216, 218, 340, 343

job control(作业控制), 299~303

shell(作业控制shell程序), 294, 299, 306~307, 325, 358,

377, 379, 734~735

signals(作业控制信号), 377~379

job结构, 812~813, 820~821, 832

job_append函数定义, 411

job_find函数, 927

函数定义, 412

job_insert函数定义, 411

job_remove函数, 869

函数定义, 412

Jolitz, W. F., 34

Joy, W. N , 3, 76

jsh程序, 299

K

Karels, M. J., 33~34, 74, 112, 116, 229, 236, 525, 951

kernel(内核), 1

Kernighan, B. W., 26, 149, 155, 162, 164, 208, 262, 898, 906,

947, 950

Kerrisk, M., 950

key, IPC(IPC键), 556~558, 562, 567, 572

key_t数据类型, 557, 633

kill函数, 18, 272, 308, 314, 325, 331, 335~338, 353, 363,

366~367, 376, 378~379, 381, 455, 679, 681, 702,

732~733, 924, 932

函数定义, 337

kill程序, 314~315, 321, 325, 551

KILL terminal character(KILL终端字符), 678, 681, 687,

702~703

kill_workers函数, 814, 828~830

函数定义, 828

Kleiman, S. R., 76, 950

Knuth, D. E., 422, 764, 950

Korn shell, 3, 53, 90, 210, 222, 289, 299, 497, 548, 702,

733~734, 737, 935, 948

Kovach, K. R., 560, 947

Krieger, O., 174, 531, 950

L

l64a函数, 442 LANG环境变量, 41, 211

<langinfo.h>头文件, 29

last程序, 187

launchctl程序, 293

launchd程序, 228, 259, 289, 292, 465

layers, shell(shell层), 299

LC_ALL环境变量, 211

LC_COLLATE环境变量, 43, 211

LC_CTYPE环境变量, 211

lchown函数, 109~110, 121, 125

函数定义, 109

LC_MESSAGES环境变量, 211

LC_MONETARY环境变量, 211

LC_NUMERIC环境变量, 211

L_ctermid常量, 694

LC_TIME环境变量, 211

ld程序, 206

LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议), 185

LD_LIBRARY_PATH环境变量, 753

ldterm STREAMS module(ldterm STREAMS模块), 716, 726

leakage, memory(内存泄漏), 209

least privilege(最小优先权), 256, 795, 816

Lee, M., 206, 949

Lee, T. P., 948

Leffler, S. J., 34, 951

Lennert, D., 951

Lesk, M. E., 143

lgamma函数, 442

lgammaf函数, 442

lgammal函数, 442

Libes, D., 720, 924, 951

<libgen.h>头文件, 30

libraries, shared(共享库), 206~207, 226, 753, 920, 947

Lightweight Directory Access Protocol, 见LDAP

limit程序, 53, 222

limits(限制), 36~53

C(C限制), 37~38

POSIX(POSIX限制), 38~41

resource(资源限制), 220~225, 233, 252, 322, 382

runtime indeterminate(未确定的运行时限制), 49~53

XSI(XSI限制), 41

<limits.h>头文件, 27, 37, 39, 41, 49~50

line control, terminal I/O(终端I/O行控制), 693~694

LINE_MAX常量, 39, 43, 49

LINES环境变量, 211

link

count(链接计数), 44, 59, 114~117, 130

hard(硬链接), 4, 114, 117, 120, 122

symbolic(符号链接), 55, 94~95, 110~111, 114, 118,

120~123, 131, 137, 141, 186, 908~909

link函数, 79, 115~119, 121~122, 125, 331, 452

函数定义, 116

linkat函数, 116~119, 331, 452

函数定义, 116

LINK_MAX常量, 39, 44, 49, 114

lint程序, 200

Linux , 2~4, 7, 14, 21, 26~27, 29~30, 35~38, 49, 52, 57, 60, 62,

64~65, 70, 73, 75~76, 86~89, 102, 108~111, 121~122,

129, 132, 138, 173, 178, 182, 184~185, 187~188, 205, 209,

211~212, 222, 226, 229, 240, 244~245, 253, 257,

259~260, 262, 269, 271, 274, 276~277, 288~290, 293,

298, 303, 306, 314~316, 318~320, 322, 329, 334~335,

351, 354~355, 358, 371, 373, 377, 379~380, 385, 388, 392,

396, 409, 426~427, 432~433, 439, 462, 464~465,

473~474, 485, 496~497, 503, 522, 530~531, 534, 559,

561, 567, 571~573, 575~576, 578, 583, 594~596, 607,

611~613, 627, 634, 648~650, 652, 675~678, 684~691,

693, 716, 724, 726~727, 740~741, 744, 753, 783, 793, 799,

911, 918, 925, 930, 932, 935~936

Linux Fast-STREAMS, 534

LinuxThreads, 388

lio_listio函数, 452, 515

函数定义, 515

LIO_NOWAIT常量, 515

Lions, J., 951

LIO_WAIT常量, 515

listen函数, 331, 605, 608~609, 625, 635, 638, 800

函数定义, 608

little-endian byte order(小端字节序), 593

Litwin, W., 744, 750, 951

LLONG_MAX常量, 37

LLONG_MIN常量, 37

ln程序, 115

LNEXT terminal character(LNEXT终端字符), 678, 681

locale(区域), 43

localeconv函数, 442

<locale.h>头文件, 27

localtime函数, 190~192, 194~195, 264, 408, 442, 452, 919

函数定义, 192

localtime_r函数, 443, 452

lockf函数, 451~452, 485

lockf结构, 493

lockfile函数, 473~474

函数定义, 494

locking

database library, coarse-grained(数据库函数库粗粒度锁), 752

database library, fine-grained(数据库函数库细粒度锁), 752

locking函数, 485

lock_reg函数, 489, 897, 930~931

函数定义, 489

locks

reader-writer(读写锁), 409~413

spin(自旋锁), 417~418

lock_test函数, 489~490, 897

函数定义, 489

log函数, 470

LOG_ALERT常量, 472

LOG_AUTH常量, 472

LOG_AUTHPRIV常量, 472

LOG_CONS常量, 468, 471

LOG_CRIT常量, 472

LOG_CRON常量, 472

LOG_DAEMON常量, 468, 472

LOG_DEBUG常量, 472

LOG_EMERG常量, 472

LOG_ERR常量, 472, 474~476, 478~479, 615~619, 622~623,

902~903

log_exit函数, 817, 898~899

函数定义, 903

LOG_FTP常量, 472

logger程序, 471

login accounting(登录记载), 186~187

.login文件, 289

login name(登录名), 2, 17, 135, 179, 187, 211, 275~276,

290, 480, 930

root(超级用户), 16

login 程序, 179, 182, 184, 187, 251, 254, 256, 276,

287~290, 292, 472, 700, 717, 738

LOG_INFO常量, 472, 476, 478

LOGIN_NAME_MAX常量, 40, 43, 49

logins(登录)

network(网络登录), 290~293

terminal(终端登录), 285~290

LOG_KERN常量, 472

LOG_LOCAL0常量, 472

LOG_LOCAL1常量, 472

LOG_LOCAL2常量, 472

LOG_LOCAL3常量, 472

LOG_LOCAL4常量, 472

LOG_LOCAL5常量, 472

LOG_LOCAL6常量, 472

LOG_LOCAL7常量, 472

LOG_LPR常量, 472

LOG_MAIL常量, 472

log_msg函数, 897, 899

函数定义, 903

LOGNAME环境变量, 211, 276, 288

LOG_NDELAY常量, 471, 928

LOG_NEWS常量, 472

LOG_NOTICE常量, 472

log_open函数, 664, 898

函数定义, 902

LOG_PERROR常量, 471

LOG_PID常量, 471, 664

log_quit函数, 830, 898~899

函数定义, 903

log_ret函数, 898~899

函数定义, 902

log_sys函数, 804, 898~899

函数定义, 902

LOG_SYSLOG常量, 472

log_to_stderr变量, 664, 807, 813, 902, 904

LOG_USER常量, 472, 664

LOG_WARNING常量, 472

LONG_BIT常量, 38

_longjmp函数, 355, 358

longjmp函数, 197, 213, 215~219, 225, 330~331, 340~341,

343, 355~358, 365, 381, 924

函数定义, 215

LONG_MAX常量, 37, 52~53, 60, 420, 906~907

LONG_MIN常量, 37

loop函数, 663~664, 666, 670, 732, 742

函数定义, 666, 732

lp程序, 585, 793

lpc程序, 472

lpd程序, 472, 793

lpsched程序, 585, 793

lrand48函数, 472

ls程序, 5~8, 13, 107~108, 112, 123, 125, 131, 135, 139,

141, 177, 179, 559, 905

lseek函数, 8, 59, 61, 66~70, 77~79, 88, 91, 149, 158, 331,

452, 462, 486, 489, 498, 592, 670, 765~766, 768, 771,

773, 779, 819, 908

函数定义, 67

lstat函数, 97, 121~122, 133, 141, 331, 452, 942

函数定义, 93

L_tmpnam常量, 168

M

Mac OS X, 3~4, 17, 26~27, 29~30, 35~36, 38, 49, 57, 60, 62,

64, 70, 83, 87~88, 102, 108~111, 113, 121, 129, 132, 138,

175, 178, 182, 184~185, 187~188, 193, 209, 211~212, 222,

228, 240, 244~245, 260, 262, 269, 271, 276~277, 288~289,

292~293, 298, 303, 314~317, 319, 322, 329, 334, 351, 355,

371, 373, 377, 379~380, 385, 388, 393, 396, 409, 426~427,

464~465, 485, 497, 503, 522, 534, 559, 561, 567, 572, 576,

594, 607, 611~613, 627, 634, 648, 675~678, 685~691, 716,

724, 726~727, 740~741, 744, 793, 799, 911, 918, 925, 930,

932, 935~936

Mach, 35, 947

<machine/_types.h>头文件, 906

macro, feature test(功能测试宏), 57~58, 84

MAILPATH环境变量, 210

main函数, 7, 150, 155, 197~200, 202, 204, 215~217, 226,236~237, 249, 283, 330~332, 357~358, 468, 654, 656, 663, 729, 739, 811, 814, 817, 824, 830, 833, 919, 921, 939, 944

major device number(主设备号), 58~59, 137, 139, 465, 699 major函数, 138~139

make程序, 300

makethread函数, 436, 438~439

mallinfo函数, 209

malloc函数, 21~23, 51, 136, 145, 174, 207~210, 213, 330,

332, 392, 400~401, 403, 405, 429, 437, 447, 450, 575,

616, 618, 623, 646~647, 650~651, 661~662, 666, 696,

760~761, 815, 820, 828, 839, 926, 928

函数定义, 207

MALLOC_OPTIONS环境变量, 928

mallopt函数, 209

mandatory record locking(强制性记录锁), 495

MAP_ANON常量, 578

MAP_ANONYMOUS常量, 578

MAP_FAILED常量, 529, 577

MAP_FIXED常量, 526~527

MAP_PRIVATE常量, 526, 528, 578

MAP_SHARED常量, 526~529, 576~578

<math.h>头文件, 27

Mauro, J., 74, 112, 116, 951

MAX_CANON常量, 39, 44, 47, 49, 673

MAX_INPUT常量, 39, 44, 49, 672

MAXPATHLEN常量, 49

MB_LEN_MAX常量, 37

mbstate_t结构, 442

McDougall, R., 74, 112, 116, 951

McKusick, M. K., 33~34, 74, 112, 116, 229, 236, 525, 951

MD5, 181

MDMBUF常量, 675, 685, 689

memccpy 函数, 155

memcpy函数, 530~531, 916

memory

allocation(内存分配), 207~210

layout(内存布局), 204~206

leakage(内存泄漏), 209

shared(共享内存), 534, 571~578

memory-mapped I/O(内存映射I/O), 525~531

memset函数, 172~173, 614, 616, 618, 621, 623

Menage, P., 949

message queues(消息队列), 534, 561~565

timing(消息队列时间), 565

mgetty程序, 290

MIN terminal value(MIN终端值), 687, 703~704, 708, 713, 943

minor device number(次设备号), 58~59, 137, 139, 465, 699

minor函数, 138~139

mkdir函数, 101~102, 120~122, 125, 129~130, 331, 452, 912函数定义, 129

mkdir程序, 129

mkdirat函数, 129~130, 331, 452

函数定义, 129

mkdtemp函数, 167~171, 452

函数定义, 169

mkfifo函数, 120~121, 125, 331, 452, 553, 937

函数定义, 553

mkfifo程序, 553

mkfifoat函数, 331, 452, 553

函数定义, 553

mknod函数, 120~121, 129, 331, 452, 553

mknodat函数, 331, 452, 553

mkstemp函数, 167~171, 452

函数定义, 169

mktime函数, 190, 192, 195, 452

函数定义, 192

mlock函数, 221

mmap函数, 174, 221, 429, 481, 525, 527, 529~532, 576~578,

587, 592, 949

函数定义, 525

modem(调制解调器), 285, 287, 297, 318, 328, 481, 508,

671, 674~675, 685, 687, 689, 692

mode_t数据类型, 59

<monetary.h>头文件, 29

Moran, J. P., 525, 949

more程序, 543, 748

Morris, R., 181, 951

mount程序, 102, 129, 139, 496

mounted STREAMS-based pipes(装配的基于 STREAMS的管道), 534

mprotect函数, 527

函数定义, 527

mq_receive函数, 451

mq_send函数, 451

mq_timedreceive函数, 451

mq_timedsend函数, 451

<mqueue.h>头文件, 30

mrand48函数, 442

MS_ASYNC常量, 528

MSG_CONFIRM常量, 611

msgctl函数, 558~559, 562

函数定义, 562

MSG_CTRUNC常量, 613

MSG_DONTROUTE常量, 611

MSG_DONTWAIT常量, 611

MSG_EOR常量, 611

MSG_EOR常量, 611, 613

msgget函数, 557~562, 632~633, 941

函数定义, 562

msghdr结构, 611, 613, 644, 646~647, 649, 651

MSG_MORE常量, 611

MSG_NOERROR常量, 564, 631, 941

MSG_NOSIGNAL常量, 611

MSG_OOB常量, 611~613, 626

MSG_PEEK常量, 612

msgrcv函数, 451, 558~559, 561, 564, 585, 631, 941

函数定义, 564

msgsnd函数, 451, 558, 560~561, 563~565, 633

函数定义, 563

MSG_TRUNC常量, 612~613

MSGVERB环境变量, 211

MSG_WAITALL常量, 612

MS_INVALIDATE常量, 528

msqid_ds结构, 561~562, 564

MS_SYNC常量, 528, 530

msync函数, 451, 528, 530

函数定义, 528

Mui, L., 712, 953

multiplexing, I/O(I/O 多路转接), 500~509

munmap函数, 528~529

函数定义, 528

mutex attributes(互斥量属性), 430~439

mutex timing comparison(互斥量时间比较), 571

mutexes(互斥量), 399~409

mv程序, 115

myftw函数, 133, 141

N

named full-duplex pipes(命名全双工管道), 534

NAME_MAX常量, 38~39, 44, 49, 55, 65, 131

nanosleep函数, 373~375, 437, 439, 451, 462, 837, 934

函数定义, 374

Native POSIX Threads Library, 见NPTL

nawk程序, 262

NCCS常量, 674

ndbm库, 744

<ndbm.h>头文件, 30

Nemeth, E., 951

<netdb.h>头文件, 29, 186

netent结构, 598

<net/if.h>头文件, 29

<netinet/in.h>头文件, 29, 595, 605

<netinet/tcp.h>头文件, 29

Network File System, Sun Microsystems, 见NFS

Network Information Service, 见NIS

network logins(网络登录), 290~293

network printer communication(网络打印机通信), 789~843

Neville-Neil, G. V., 74, 112, 116, 951

newgrp程序, 183

nfds_t数据类型, 507

_NFILE常量, 51

NFS(Network File System, Sun Microsystems,Sun

Microsystems网络文件系统), 76, 787

nftw函数, 122, 131~132, 135, 442, 452, 910

NGROUPS_MAX常量, 39, 43, 49, 183~184

nice函数, 276~277

函数定义, 276

nice值, 252, 276~277, 279

Nievergelt, J., 744, 750, 949

NIS(Network Information Service,网络信息服务), 185

NIS+, 185

NL terminal character(NL终端字符), 678, 680~681, 687,

700, 703

NL0常量, 689

NL1常量, 689

NL_ARGMAX常量, 39

NLDLY常量, 676, 684, 689

nlink_t数据类型, 59, 114

nl_langinfo函数, 442

NL_LANGMAX常量, 41

NL_MSGMAX常量, 39

NL_SETMAX常量, 39

NLSPATH环境变量, 211

NL_TEXTMAX常量, 39

<nl_types.h>头文件, 29

nobody login name(nobody登录名), 178~179

NOFILE常量, 51

NOFLSH常量, 676, 689

NOKERNINFO常量, 676, 682, 689

nologin程序, 179

nonblocking(非阻塞)

I/O(非阻塞I/O), 481~484

socket I/O(非阻塞套接字I/O), 608~609, 627

noncanonical mode, terminal I/O(终端 I/O 规范模式),

703~710

nonfatalerror(非致命性)错误, 16

nonlocal goto(非局部goto), 213~220, 355~358

NPTL(Native POSIX Threads Library,Native POSIX线程库), 388

ntohl函数, 594, 811, 825, 842

函数定义, 594

ntohs函数, 594, 604, 842

函数定义, 594

NULL常量, 823

null signal(null信号), 314, 337

NZERO常量, 41, 276~277

O

O_ACCMODE常量, 83~84

O_APPEND常量, 63, 66, 72, 77~78, 83~84, 149, 497, 511

O_ASYNC常量, 83, 511, 627

O_CLOEXEC常量, 63

O_CREAT 常量, 63, 66, 79, 89, 121, 125, 474, 496~498,

517~518, 529, 558, 579~580, 584, 749, 758, 818, 930

OCRNL常量, 676, 689

od程序, 69

O_DIRECT常量, 150

O_DIRECTORY常量, 63

O_DSYNC常量, 64, 83, 513

O_EXCL常量, 63, 79, 121, 558, 580, 584

O_EXEC常量, 83

OFDEL常量, 677, 684, 689

off_t数据类型, 59, 67~70, 157~158, 772

OFILL常量, 676, 684, 689

O_FSYNC常量, 64, 83~84

OLCUC常量, 676, 689

Olson, M., 952

O_NDELAY常量, 36, 63, 482

ONLCR常量, 676, 690, 731, 738

ONLRET常量, 676, 690

ONOCR常量, 676, 690

O_NOCTTY常量, 63, 297~298, 466, 723~724, 726

ONOEOT常量, 676, 690

O_NOFOLLOW常量, 63

O_NONBLOCK常量, 36, 63, 83~84, 482~483, 496, 498, 553,

611~612, 934, 937

open 函数, 8, 14, 61~66, 77, 79, 83, 89, 91, 100~101,

103~104, 112, 118, 120~125, 127~128, 137, 148~150,

283, 287, 297~298, 331, 451, 468, 470, 474, 482,

492~493, 495~498, 517~518, 525, 529, 553, 556, 558,

560, 577~578, 585, 588, 592, 653, 656~657, 669~670,

685, 723, 725~726, 745, 757~758, 808, 818, 823, 833,

907, 909, 930, 937

open函数定义, 62

Open Group, The, 31, 196, 950

Open Software Foundation, 见OSF

openat函数, 62~66, 331, 451

函数定义, 62

opend.h头文件, 656, 660, 942

opendir函数, 5, 7, 121, 130~135, 252~253, 283, 452, 697,

822, 910

函数定义, 130

openlog函数, 452, 468, 470~471, 480, 902, 928

函数定义, 470

OPEN_MAX常量, 40, 43, 49, 51~53, 60, 62, 906

open_max函数, 466, 544, 546, 666, 896

函数定义, 52, 907

open_memstream函数, 171~174

函数定义, 173

OpenServer, 485

OpenSS7, 534

open_wmemstream函数, 171~174

函数定义, 173

OPOST常量, 676, 690, 706~708, 710

optarg变量, 663

opterr变量, 663

optind变量, 808

option codes(选项代码), 31

options(选项), 53~57

socket(套接字选项), 623~625

optopt变量, 663

Oracle公司, 35

O_RDONLY常量, 62, 83~84, 100, 103, 517~518, 529, 654,

808, 833, 937

O_RDWR常量, 62, 83~84, 100, 128, 468, 474, 498, 517~518,

529, 577, 723, 725, 749, 818, 930

O’Reilly, T., 712, 953

orientation, stream(流定向), 144

orphaned process group(孤儿进程组), 307~309, 469, 735

O_RSYNC常量, 64, 83

O_SEARCH常量, 63, 83

OSF(Open Software Foundation,开放软件基金会), 31~32

O_SYNC常量, 63~64, 83~84, 86~87, 513, 520

O_TRUNC常量, 63, 66, 100, 112, 125, 127~128, 149, 496,

498, 517~518, 529, 749

O_TTY_INIT常量, 64, 683, 722

out-of-band data(带外数据), 626

ownership

directory(目录所有权), 101~102

file(文件所有权), 101~102

O_WRONLY常量, 62, 83~84, 100, 937

OXTABS常量, 676, 690

P

packet mode, pseudo terminal(伪终端打包模式), 740

page cache(页缓存), 81

page size(页大小), 573

page daemon process(页守护进程进程), 228

PAGER环境变量, 539, 542~543

PAGESIZE常量, 40, 43, 49

PAGE_SIZE常量, 41, 43, 49

P_ALL常量, 244

PARENB常量, 675, 688, 690, 706~708

parent

directory(父目录), 4, 108, 125, 129

process ID(父进程 ID), 228, 233, 237, 243, 246, 252,

287~288, 309, 464

PAREXT常量, 675, 690

parity, terminal I/O(终端I/O奇偶性), 688

PARMRK常量, 676, 685, 688, 690

PARODD常量, 675, 685, 688, 690, 713

passing, file descriptor(传送文件描述符), 587, 642~652

passwd程序, 99, 182, 720

passwd结构, 177, 180, 332, 809, 814, 918

password

file(口令文件), 177~181

implementation differences(口令实现差别), 184~185

shadow(阴影口令), 181~182, 196, 918

PATH 环境变量, 100, 211, 250~251, 253, 260, 263, 265,

288~289

path_alloc函数, 133, 137, 896, 912

函数定义, 50

pathconf函数, 37, 39, 41~48, 50~51, 53~55, 57, 65, 110,

121, 452, 537

函数定义, 42

PATH_MAX常量, 38~39, 44, 49~50, 142, 911

pathname(路径名), 5

absolut(e 绝对路径名), 5, 8, 43, 50, 64, 136, 141~142, 260,

553, 911

relative(相对路径名), 5, 8, 43~44, 50, 64~65, 135, 553

truncation(路径截断), 65~66

pause函数, 324, 327~328, 331, 334, 338~343, 356, 359,

365, 374, 451, 460, 711, 924, 930~931

函数定义, 338

P_PC_2_SYMLINKS常量, 55

_PC_ASYNC_IO常量, 55

_PC_CHOWN_RESTRICTED常量, 55

_PC_FILESIZEBITS常量, 42, 44

PCFS文件系统, 49, 57, 113

pckt STREAMS模块, 716, 740

_PC_LINK_MAX常量, 42, 44

pclose函数, 267, 452, 541~548, 616, 622, 935~937

函数定义, 541, 545

_PC_MAX_CANON常量, 42, 44, 47

_PC_MAX_INPUT常量, 42, 44

_PC_NAME_MAX常量, 42, 44

_PC_NO_TRUNC常量, 55, 57

_PC_PATH_MAX常量, 43~44, 51

_PC_PIPE_BUF常量, 44

_PC_PRIO_IO常量, 55

_PC_SYMLINK_MAX常量, 44

_PC_SYNC_IO常量, 55

_PC_TIMESTAMP_RESOLUTION常量, 42, 44

_PC_VDISABLE常量, 54~55, 679

PENDIN常量, 676, 690

permissions, file access(文件访问权限), 99~101, 140

perror函数, 15~16, 24, 334, 379, 452, 600, 905

函数定义, 15

pgrp结构, 311~312

PID, 见process ID

pid_t数据类型, 11, 59, 293, 384

Pike, R., 229, 950, 952

pipe函数, 125, 148, 331, 535, 537~538, 540, 544, 546, 550,

565, 630, 934

函数定义, 535

PIPE_BUF常量, 39, 44, 49, 532, 537, 554~555, 935

pipes(管道), 534~541

full-duplex(全双工管道), 534

half-duplex(半双工管道), 534

mounted STREAMS-based(装配的基于STREAMS的管道), 534

named full-duplex(命名全双工管道), 534

timing full-duplex(全双工管道时间), 565

Pippenger, N., 744, 750, 949

Plan 9 operating system(Plan 9操作系统), 229, 952

Plauger, P. J., 26, 164, 323, 952

pointer, generic(通用指针), 71, 208

poll 函数, 319, 330~331, 343, 451, 481, 501~502,

506~509, 531~532, 560, 586, 588, 592, 608~609, 627,

631~632, 659, 664, 666~668, 718, 732, 742, 933~934,

936~937, 942

函数定义, 506

POLLERR常量, 508

pollfd结构, 507, 632, 666, 668, 934, 941

<poll.h>头文件, 29, 507

POLLHUP常量, 508, 667~668, 936

POLLIN常量, 508, 632, 666~668, 936, 941~942

polling(轮询), 246, 484, 501

POLLNVAL常量, 508

POLLOUT常量, 508

POLLPRI常量, 508

POLLRDBAND常量, 508

POLLRDNORM常量, 508

POLLWRBAND常量, 508

POLLWRNORM常量, 508

popen函数, 23, 242, 249, 267, 452, 541~548, 587~588, 615,

619, 622~623, 935~937

函数定义, 541, 543

port number(端口号), 593, 595~596, 598~601, 605

Portable Operating System Environment for Computer

Environments, IEEE, 见POSIX

POSIX(Portable Operating System Environment for Computer Environments, IEEE), 26~30, 33, 265, 561, 674

POSIX semaphores(POSIX信号量), 579~584

POSIX.1, 4, 9, 27, 38, 41, 50, 53, 57~58, 88, 257, 262, 329, 367~368, 384, 533, 546, 553, 589, 617, 744, 950

POSIX.2, 262

_POSIX2_SYMLINKS常量, 55

_POSIX_ADVISORY_INFO常量, 31

_POSIX_AIO_LISTIO_MAX常量, 515

_POSIX_AIO_MAX常量, 515

_POSIX_ARG_MAX常量, 39~40

_POSIX_ASYNCHRONOUS_IO常量, 54, 57

_POSIX_ASYNC_IO常量, 55

_POSIX_BARRIERS常量, 54, 57

_POSIX_CHILD_MAX常量, 39~40

_POSIX_CHOWN_RESTRICTED常量, 55, 57, 110

_POSIX_CLOCKRES_MIN常量, 38

_POSIX_CLOCK_SELECTION常量, 54, 57

_POSIX_CPUTIME常量, 31, 189

_POSIX_C_SOURCE常量, 57~58, 84, 240

_POSIX_DELAYTIMER_MAX常量, 39~40

posix_fadvise函数, 452

posix_fallocate函数, 452

_POSIX_FSYNC常量, 31

_POSIX_HOST_NAME_MAX常量, 39~40

_POSIX_IPV6常量, 31

_POSIX_JOB_CONTROL常量, 57

_POSIX_LINK_MAX常量, 39

_POSIX_LOGIN_NAME_MAX常量, 39~40

POSIXLY_CORRECT环境变量, 111

posix_madvise函数, 452

_POSIX_MAPPED_FILES常量, 54, 57

_POSIX_MAX_CANON常量, 39

_POSIX_MAX_INPUT常量, 39

_POSIX_MEMLOCK常量, 31

_POSIX_MEMLOCK_RANGE常量, 31

_POSIX_MEMORY_PROTECTION常量, 54, 57

_POSIX_MESSAGE_PASSING常量, 31

_POSIX_MONOTONIC_CLOCK常量, 31, 189

_POSIX_NAME_MAX常量, 39, 580

_POSIX_NGROUPS_MAX常量, 39

_POSIX_NO_TRUNC常量, 55, 57, 65

_POSIX_OPEN_MAX常量, 39~40

posix_openpt函数, 452, 722~725

函数定义, 722

_POSIX_PATH_MAX常量, 39~40, 696~697

_POSIX_PIPE_BUF常量, 39

_POSIX_PRIO_IO常量, 55

_POSIX_PRIORITIZED_IO常量, 31

_POSIX_PRIORITY_SCHEDULING常量, 31

_POSIX_RAW_SOCKETS常量, 31

_POSIX_READER_WRITER_LOCKS常量, 55, 57

_POSIX_REALTIME_SIGNALS常量, 55, 57

_POSIX_RE_DUP_MAX常量, 39_POSIX_RTSIG_MAX常量, 39~40

_POSIX_SAVED_IDS常量, 57, 98, 256, 337

_POSIX_SEMAPHORES常量, 55, 57

_POSIX_SEM_NSEMS_MAX常量, 39~40

_POSIX_SEM_VALUE_MAX常量, 39~40

_POSIX_SHARED_MEMORY_OBJECTS常量, 31

_POSIX_SHELL常量, 57

_POSIX_SIGQUEUE_MAX常量, 39~40

_POSIX_SOURCE常量, 57

_POSIX_SPAWN常量, 31

posix_spawn函数, 452

posix_spawnp函数, 452

_POSIX_SPIN_LOCKS常量, 55, 57

_POSIX_SPORADIC_SERVER常量, 31

_POSIX_SSIZE_MAX常量, 39

_POSIX_STREAM_MAX常量, 39~40

_POSIX_SYMLINK_MAX常量, 39

_POSIX_SYMLOOP_MAX常量, 39~40

_POSIX_SYNCHRONIZED_IO常量, 31

_POSIX_SYNC_IO常量, 55

_POSIX_THREAD_ATTR_STACKADDR常量, 31, 429

_POSIX_THREAD_ATTR_STACKSIZE常量, 31, 429

_POSIX_THREAD_CPUTIME常量, 31, 189

_POSIX_THREAD_PRIO_INHERIT常量, 31

_POSIX_THREAD_PRIO_PROTECT常量, 31

_POSIX_THREAD_PRIORITY_SCHEDULING常量, 31

_POSIX_THREAD_PROCESS_SHARED常量, 31, 431

_POSIX_THREAD_ROBUST_PRIO_INHERIT常量, 31

_POSIX_THREAD_ROBUST_PRIO_PROTECT常量, 31

_POSIX_THREADS常量, 55, 57, 384

_POSIX_THREAD_SAFE_FUNCTIONS常量, 55, 57, 442

_POSIX_THREAD_SPORADIC_SERVER常量, 31

_POSIX_TIMEOUTS常量, 55

_POSIX_TIMER_MAX常量, 39~40

_POSIX_TIMERS常量, 55, 57

_POSIX_TIMESTAMP_RESOLUTION常量, 44

posix_trace_event函数, 331

_POSIX_TTY_NAME_MAX常量, 39~40

posix_typed_mem_open函数, 452

_POSIX_TYPED_MEMORY_OBJECTS常量, 31

_POSIX_TZNAME_MAX常量, 39~40

_POSIX_V6_ILP32_OFF32常量, 70

_POSIX_V6_ILP32_OFFBIG常量, 70

_POSIX_V6_LP64_OFF64常量, 70

_POSIX_V6_LP64_OFFBIG常量, 70

_POSIX_V7_ILP32_OFF32常量, 70

_POSIX_V7_ILP32_OFFBIG常量, 70

_POSIX_V7_LP64_OFF64常量, 70

_POSIX_V7_LP64_OFFBIG常量, 70

_POSIX_VDISABLE常量, 55, 57, 678~679

_POSIX_VERSION常量, 57, 188

P_PGID常量, 244

PPID, 见parent process ID

P_PID常量, 244

pr程序, 753

prctl程序, 559

pread函数, 78, 451, 461~462, 592

函数定义, 78

Presotto, D. L., 229, 952

pr_exit函数, 239~241, 266~268, 281, 283, 372, 896

函数定义, 240

primitive system data types(基本系统数据类型), 58

print程序, 794, 801, 820, 824~825, 834, 843

printd程序, 794, 843

printer communication, network(网络打印机通信),

789~843

printer spooling(打印机假脱机), 793~795

source code(源代码), 795~842

printer_status函数, 814, 837~838, 843

函数定义, 838

printer_thread函数, 814, 832, 945

函数定义, 832

printf函数, 10~11, 21, 150, 159, 161~163, 175, 192, 194,

219, 226, 231, 235, 283, 309, 330, 349, 452, 552,

919~920

函数定义, 159

print.h头文件, 815, 820, 825

printreq结构, 801, 809~810, 812, 820, 822~824, 827

printresp结构, 801, 809, 811, 824~827

PRIO_PGRP常量, 277

PRIO_PROCESS常量, 277

PRIO_USER常量, 277

privilege, least(最小权限), 256, 795, 816

pr_mask函数, 356~357, 360~361, 896

函数定义, 347

/proc, 136, 253

proc结构, 311~312

process(进程), 11

accounting(进程会计), 269~275

control(进程控制), 11, 227~283

ID(进程ID), 11, 228, 252

ID, parent(父进程ID), 228, 233, 237, 243, 246, 252,

287~288, 309, 464

identifiers(进程标识符), 227~228 relationships(进程关系), 285~312

scheduling(进程调度), 276~280

system(系统进程), 228, 337

termination(进程终止), 198~202

time(进程时间), 20, 24, 59, 280~282

process group(进程组), 293~294

background(后台进程组), 296, 300, 302, 304, 306~307,

309, 321, 369, 377, 944

foreground(前台进程组), 296, 298, 300~303, 306, 311,

318~322, 369, 377, 680~682, 685, 689, 710, 719, 741,

944

ID(进程组ID), 233, 252

ID, foreground(前台进程组ID), 298, 303, 677

ID, session(会话进程组ID), 304

ID, terminal(终端进程组ID), 303, 463

leader(进程组组长进程), 294~296, 306, 312,

465~466, 727

lifetime(进程组生命周期), 294

orphaned(孤儿进程组), 307~309, 469, 735

processes, cooperating(合作进程), 495, 752, 945

process-shared attribute(进程共享属性), 431

.profile文件, 289

program(程序), 10

PROT_EXEC常量, 525

PROT_NONE常量, 525

protoent结构, 598

prototypes, function(函数原型), 845~893

PROT_READ常量, 525, 529, 577

PROT_WRITE常量, 525, 529, 577

PR_TEXT常量, 801, 810, 825, 835~836

ps程序, 237, 283, 303, 306~307, 463~465, 468~469, 480,

736, 923

pselect函数, 331, 451, 501, 506

函数定义, 506

pseudo terminal(伪终端), 715~742

packet mode(伪终端打包模式), 740

remote mode(伪终端远程模式), 741

signal generation(伪终端信号产生), 741

window size(伪终端窗口大小), 741

psiginfo函数, 379~380, 452

函数定义, 379

psignal函数, 379~380, 452

函数定义, 379

ptem STREAMS模块, 716, 726

pthread结构, 385

pthread_atfork函数, 457~461

函数定义, 458

pthread_attr_destroy函数, 427~429

函数定义, 427

pthread_attr_getdetachstate函数, 428

函数定义, 428

pthread_attr_getguardsize函数, 430

函数定义, 430

pthread_attr_getstack函数, 429

函数定义, 429

pthread_attr_getstacksize函数, 429~430

函数定义, 430

pthread_attr_init函数, 427~429

函数定义, 427

pthread_attr_setdetachstate函数, 428

函数定义, 428

pthread_attr_setguardsize函数, 430

函数定义, 430

pthread_attr_setstack函数, 429

函数定义, 429

pthread_attr_setstacksize函数, 429~430

函数定义, 430

pthread_attr_t数据类型, 427~428, 430, 451

pthread_barrierattr_destroy函数, 441

函数定义, 441

pthread_barrierattr_getpshared函数, 441

函数定义, 441

pthread_barrierattr_init函数, 441

函数定义, 441

pthread_barrierattr_setpshared函数, 441

函数定义, 441

pthread_barrier_destroy函数, 418~419

函数定义, 418

pthread_barrier_init函数, 418~419, 421

函数定义, 418

PTHREAD_BARRIER_SERIAL_THREAD常量, 419, 422 pthread_barrier_t数据类型, 419

pthread_barrier_wait函数, 419~423

函数定义, 419

pthread_cancel函数, 393, 451, 453, 828

函数定义, 393

PTHREAD_CANCEL_ASYNCHRONOUS常量, 453

PTHREAD_CANCEL_DEFERRED常量, 453

PTHREAD_CANCEL_DISABLE常量, 451

PTHREAD_CANCELED常量, 389, 393

PTHREAD_CANCEL_ENABLE常量, 451

pthread_cleanup_pop函数, 394~396, 827, 829

函数定义, 394

pthread_cleanup_push函数, 394~396, 824

函数定义, 394

pthread_condattr_destroy函数, 440

函数定义, 440

pthread_condattr_getclock函数, 441

函数定义, 441

pthread_condattr_getpshared函数, 440

函数定义, 440

pthread_condattr_init函数, 440

函数定义, 440

pthread_condattr_setclock函数, 441

函数定义, 441

pthread_condattr_setpshared函数, 440

函数定义, 440

pthread_condattr_t数据类型, 441

pthread_cond_broadcast函数, 415, 422~423, 927

函数定义, 415

pthread_cond_destroy函数, 414, 462

函数定义, 414

pthread_cond_init函数, 414, 462, 941

函数定义, 414

PTHREAD_COND_INITIALIZER常量, 413, 416, 455, 814

pthread_cond_signal函数, 415~416, 456, 821, 942

函数定义, 415

pthread_cond_t数据类型, 413, 416, 455, 814, 940

pthread_cond_timedwait 函 数 , 414~415, 434,

440~441, 451

函数定义, 414

pthread_cond_wait函数, 414~416, 434, 451, 456, 832,

927, 941

函数定义, 414

pthread_create函数, 385~388, 390~392, 395, 397, 421,

427~428, 456, 460, 477, 632, 817, 926, 941

函数定义, 385

PTHREAD_CREATE_DETACHED常量, 428

PTHREAD_CREATE_JOINABLE常量, 428

PTHREAD_DESTRUCTOR_ITERATIONS常量, 426, 447

pthread_detach函数, 396~397, 427

函数定义, 385

pthread_equal函数, 385, 412

函数定义, 385

pthread_exit函数, 198, 236, 389~391, 393~396, 447,

824~829

函数定义, 389

pthread_getspecific函数, 449~450

函数定义, 44

<pthread.h>头文件, 29

pthread_join函数, 389~391, 395~396, 418, 451, 926

函数定义, 389

pthread_key_create函数, 447~448, 450

函数定义, 447

pthread_key_delete函数, 447~448

函数定义, 448

PTHREAD_KEYS_MAX常量, 426, 447

pthread_key_t数据类型, 449

pthread_kill函数, 455

函数定义, 455

pthread_mutexattr_destroy函数, 431, 445

函数定义, 431

pthread_mutexattr_getpshared函数, 431

函数定义, 431

pthread_mutexattr_getrobust函数, 432

函数定义, 432

pthread_mutexattr_gettype函数, 434

函数定义, 434

pthread_mutexattr_init函数, 431, 438, 445

函数定义, 431

pthread_mutexattr_setpshared函数, 431

函数定义, 431

pthread_mutexattr_setrobust函数, 432

函数定义, 432

pthread_mutexattr_settype函数, 434, 438, 445

函数定义, 434

pthread_mutexattr_t数据类型, 430~431, 438, 445

pthread_mutex_consistent函数, 432~433, 571

函数定义, 433

PTHREAD_MUTEX_DEFAULT常量, 433~434

pthread_mutex_destroy函数, 400~401, 404, 407

函数定义, 400

PTHREAD_MUTEX_ERRORCHECK常量, 433~434

pthread_mutex_init 函数, 401, 403, 405, 431, 438,

445, 941

函数定义, 400

PTHREAD_MUTEX_INITIALIZER 常量, 400, 403, 405,

408, 416, 431, 449, 455, 459, 813~814

pthread_mutex_lock 函 数 , 400~401, 403~404,

406~408, 416, 422~423, 432, 438, 445, 450, 456,

459~460, 820~821, 828~830, 832~833, 941~942

函数定义, 400

PTHREAD_MUTEX_NORMAL常量, 433~434

PTHREAD_MUTEX_RECURSIVE常量, 433~434, 438, 445

PTHREAD_MUTEX_ROBUST常量, 432

PTHREAD_MUTEX_STALLED常量, 432

pthread_mutex_t 数据类型, 400~401, 403, 405, 408,

416, 438, 445, 449, 455, 459, 813~814, 940

pthread_mutex_timedlock函数, 407~409, 413

函数定义, 407

pthread_mutex_trylock函数, 400, 402

函数定义, 400

pthread_mutex_unlock 函数, 400~401, 403~404,

406~407, 416, 422~423, 438~439, 445, 450, 456, 460,

820~821, 828~830, 832~833, 941~942

函数定义, 400

pthread_once函数, 445, 448, 450, 928

函数定义, 448

PTHREAD_ONCE_INIT常量, 445, 448~449

pthread_once_t数据类型, 445, 449

PTHREAD_PROCESS_PRIVATE常量, 417, 431, 442

PTHREAD_PROCESS_SHARED常量, 417, 431, 442, 571

pthread_rwlockattr_destroy函数, 439

函数定义, 439

pthread_rwlockattr_getpshared函数, 440

函数定义, 440

pthread_rwlockattr_init函数, 439

函数定义, 439

pthread_rwlockattr_setpshared函数, 440

函数定义, 440

pthread_rwlockattr_t数据类型, 439

pthread_rwlock_destroy函数, 409~410

函数定义, 409

pthread_rwlock_init函数, 409, 411

函数定义, 409

PTHREAD_RWLOCK_INITIALIZER常量, 409

pthread_rwlock_rdlock函数, 410, 412, 452

函数定义, 410

pthread_rwlock_t数据类型, 411

pthread_rwlock_timedrdlock函数, 413, 452

函数定义, 413

pthread_rwlock_timedwrlock函数, 412

函数定义, 413

pthread_rwlock_tryrdlock函数, 410

函数定义, 410

pthread_rwlock_trywrlock函数, 410

函数定义, 410

pthread_rwlock_unlock函数, 410~412

函数定义, 410

pthread_rwlock_wrlock函数, 410~412, 452

函数定义, 410

pthreads, 27, 229, 384, 426

pthread_self函数, 385, 387, 391, 824

函数定义, 385

pthread_setcancelstate函数, 451

函数定义, 451

pthread_setcanceltype函数, 453

函数定义, 453

pthread_setspecific函数, 449~450

函数定义, 449

pthread_sigmask函数, 453~454, 477, 815

函数定义, 454

pthread_spin_destroy函数, 417

函数定义, 417

pthread_spin_init函数, 417

函数定义, 417

pthread_spin_lock函数, 418

函数定义, 418

pthread_spin_trylock函数, 418

函数定义, 418

pthread_spin_unlock函数, 418

函数定义, 418

PTHREAD_STACK_MIN常量, 426, 430

pthread_t数据类型, 59, 384~385, 387, 390~391, 395, 411,

421, 428, 456, 460, 476, 632, 812, 814, 824, 829, 926, 941

pthread_testcancel函数, 451, 453

函数定义, 453

PTHREAD_THREADS_MAX常量, 426

ptrdiff_t数据类型, 59

ptsname函数, 442, 723~725

函数定义, 732

pty程序, 309, 715, 720~721, 727, 729~742, 944

pty_fork函数, 721, 724, 726~730, 732, 739, 741~742

函数定义, 727

ptym_open函数, 724, 726~728, 897

函数定义, 724~725

ptys_fork函数, 897

ptys_open函数, 724, 726~728, 897

函数定义, 724~725

Pu, C., 65, 953

putc函数, 10, 152~156, 247~248, 452, 701

函数定义, 152

putchar函数, 152, 175, 452, 547~548

函数定义, 152

putchar_unlocked函数, 442, 444, 452

函数定义, 444

putc_unlocked函数, 442, 444, 452

函数定义, 444

putenv函数, 204, 212, 251, 442, 446, 462

函数定义, 212

putenv_r函数, 462

puts函数, 152~153, 452, 911

函数定义, 153

pututxline函数, 442, 452

putwc函数, 452

putwchar函数, 452

PWD环境变量, 211

<pwd.h>头文件, 29, 177, 186

pwrite函数, 78~79, 451, 461~462, 592

函数定义, 78

Q

Quarterman, J. S., 33~34, 74, 112, 116, 229, 236, 525, 951

QUIT terminal character(QUIT终止字符), 678, 681,

688, 702

R

race condition(s 竞争条件), 245~249, 339, 784, 922, 924

Rago, S. A., 88, 157, 290, 952

raise函数, 331, 336~338, 365

函数定义, 337

rand函数, 442

raw terminal mode(原始终端模式), 672, 704, 708, 713,

732, 734

Raymond, E. S., 952

read函数, 8~10, 20, 59, 61, 64, 71~72, 78, 88, 90~91, 111,

124~125, 130, 145, 154~156, 174, 301, 308~309,

328~331, 342~343, 364~365, 378, 451, 462, 470,

482~483, 495~496, 498~502, 505~506, 508~509, 513,

517, 523~525, 530~531, 536~537, 540~541, 549~551,

553, 556, 587, 590, 592, 610, 612, 654, 656, 665~667,

672, 702~704, 708~709, 732~733, 738, 740, 748, 752,

765, 767~768, 805~806, 811, 818, 823, 836~838,

907~908, 936, 943

函数定义, 71

read, scatter(散布读), 521, 644

readdir函数, 5, 7, 130~135, 442, 452, 697, 823

函数定义, 130

readdir_r函数, 443, 452

reader-writer lock attributes(读写锁属性), 439~440

reader-writer locks(读-写锁), 409~413

reading directories(读目录), 130~135

readlink函数, 121, 123~124, 331, 452

函数定义, 123

readlinkat函数, 123~124, 331, 452

函数定义, 123

read_lock函数, 489, 493, 498, 897

readmore函数, 814, 837, 840~841

函数定义, 837

readn函数, 523~524, 738, 806, 811, 896

函数定义, 523~524

readv函数, 41, 43, 329, 451, 481, 521~523, 531, 592, 613,

644, 752, 766

函数定义, 521

readw_lock函数, 489, 759, 763, 780, 897

real

group ID(实际组ID), 98, 102, 183, 228, 233, 252~253,

256, 270, 585

user ID(实际用户 ID), 39~40, 43, 98~99, 102, 221,

228, 233, 252~253, 256~260, 270, 276, 286, 288,

337, 381, 585, 924

realloc函数, 50, 174, 207~208, 213, 661~662, 666, 761,

838, 840, 911~912

函数定义, 207

record locking(记录锁), 485~499

advisory(建议性记录锁), 495

deadlock(记录锁死锁), 490

mandatory(强制性记录锁), 495

timing comparison(记录锁时间比较), 571

recv函数, 331, 451, 592, 612~615, 626~627

函数定义, 612

recv_fd函数, 642~644, 650, 655, 660, 896

函数定义, 642, 647

recvfrom函数, 331, 451, 613, 620~623

函数定义, 613

recvmsg函数, 331, 451, 613, 644, 647~648, 651

函数定义, 613

recv_ufd函数, 650

函数定义, 651

RE_DUP_MAX常量, 39, 43, 49

reentrant functions(可重入函数), 330~332

regcomp函数, 39, 43

regexec函数, 39, 43

<regex.h>头文件, 29

register variables(寄存器变量), 217

regular file(普通文件), 95

relative pathname(相对路径), 5, 8, 43~44, 50, 64~65,

135, 553

reliable signals(可靠信号), 335~336

remote mode, pseudo terminal(伪终端远程模式), 741

remove函数, 116~119, 121, 125, 452

函数定义, 119

remove_job函数, 814, 822, 832

函数定义, 822

rename函数, 119~121, 125, 331, 452

函数定义, 119

renameat函数, 119~120, 331, 452

函数定义, 119

replace_job函数, 814, 821, 837

函数定义, 821

REPRINT terminal character(REPRINT终端字符), 678,

681, 687, 690, 703

reset程序, 713, 943

resource limits(资源限制), 220~225, 233, 252, 322, 382

restarted system calls(重启系统调用), 329~330, 342~343,

351, 354, 508, 700

restrict关键字, 26, 93, 123, 146, 148, 152~153, 156,

158~159, 161~163, 190, 192, 195, 346, 350, 385, 400,

409, 414, 428~432, 434, 440~441, 454, 502, 506, 596,

599~600, 605, 608, 613, 624

rewind函数, 149, 158, 168, 452

函数定义, 158

rewinddir函数, 130~135, 452

函数定义, 13

rfork函数, 229

Ritchie, D. M., 26, 143, 149, 155, 162, 164, 208, 898, 906, 950, 952

RLIM_INFINITY常量, 221, 468

rlimit结构, 220, 224, 467, 907

RLIMIT_AS常量, 221~223

RLIMIT_CORE常量, 221~223, 317

RLIMIT_CPU常量, 221~223

RLIMIT_DATA常量, 221~223

RLIMIT_FSIZE常量, 221~223, 382

RLIMIT_INFINITY常量, 224, 907

RLIMIT_MEMLOCK常量, 221~223

RLIMIT_MEMLOCK常量, 221, 223

RLIMIT_NICE常量, 221, 223

RLIMIT_NOFILE常量, 221~223, 467, 907

RLIMIT_NPROC常量, 221~223

RLIMIT_NPTS常量, 221, 223

RLIMIT_RSS常量, 222~223

RLIMIT_SBSIZE常量, 222~223

RLIMIT_SIGPENDING常量, 222, 224

RLIMIT_STACK常量, 222, 224

RLIMIT_SWAP常量, 222, 224

RLIMIT_VMEM常量, 222, 224

rlim_t数据类型, 59, 223

rlogin程序, 717, 741~742

rlogind程序, 717, 734, 741, 944

rm程序, 559, 663

rmdir函数, 117, 119~120, 125, 129~130, 331

函数定义, 130

robust属性, 431, 571

R_OK常量, 102~103

root

directory(根目录), 4, 8, 24, 139, 141, 233, 252, 283, 910 login name(根用户登录名), 16

routed程序, 472

rpcbind程序, 465

RS-232, 674, 685~686

rsyslogd程序, 465, 480

RTSIG_MAX常量, 40, 43

Rudoff, A. M., 157, 291, 470, 589, 952

runacct程序, 269

S

S5文件系统, 65

sa程序, 269

sac程序, 290

SAF(Service Access Facility,服务访问设施), 290

safe, async-signal(异步信号安全的), 330, 446, 450, 457,

461~462, 927

sa_handler结构, 376

SA_INTERRUPT常量, 326, 328~329 s_alloc函数, 584

Salus, P. H., 952

SA_NOCLDSTOP常量, 351

SA_NOCLDWAIT常量, 333, 351

SA_NODEFER常量, 351, 354

Santa Cruz Operation, 见SCO

SA_ONSTACK常量, 351

SA_RESETHAND常量, 351, 354

SA_RESTART常量, 329, 351, 354, 508~509

SA_SIGINFO常量, 336, 350~353, 376, 512

saved

set-group-ID(保存设置组ID), 56, 98, 257

set-user-ID(保存设置用户 ID), 56, 98, 256~260,

288, 337

S_BANDURG常量, 510

sbrk函数, 21~23, 208, 221

_SC_AIO_MAX常量, 516

_SC_AIO_PRIO_DELTA_MAX常量, 516

scaling, frequency(频率调整), 785

scan_configfile函数, 803~804

函数定义, 803

scandir函数, 452

scanf函数, 150, 162~163, 452

函数定义, 162

_SC_ARG_MAX常量, 43, 47

_SC_ASYNCHRONOUS_IO常量, 57

_SC_ATEXIT_MAX常量, 43

scatter read(散布读), 521, 644

_SC_BARRIERS常量, 57

_SC_CHILD_MAX常量, 43, 221

_SC_CLK_TCK常量, 42~43, 280~281

_SC_CLOCK_SELECTION常量, 57

_SC_COLL_WEIGHTS_MAX常量, 43

_SC_DELAYTIMER_MAX常量, 43

SCHAR_MAX常量, 37~38

SCHAR_MIN常量, 37~38

<sched.h>头文件, 29

scheduling, process(进程调度), 276~280

_SC_HOST_NAME_MAX常量, 43, 616, 618, 623, 815

Schwartz, A., 181, 250, 298, 949

_SC_IO_LISTIO_MAX常量, 516

_SC_IOV_MAX常量, 43

_SC_JOB_CONTROL常量, 54, 57

_SC_LINE_MAX常量, 43

_SC_LOGIN_NAME_MAX常量, 43

_SC_MAPPED_FILES常量, 57

SCM_CREDENTIALS常量, 649~652

SCM_CREDS常量, 649~650, 652

SCM_CREDTYPE常量, 650, 652

_SC_MEMORY_PROTECTION常量, 57

SCM_RIGHTS常量, 645~646, 650, 652

_SC_NGROUPS_MAX常量, 43

_SC_NZERO常量, 276

SCO(Santa Cruz Operation), 36

_SC_OPEN_MAX常量, 43, 52, 221, 907

_SC_PAGESIZE常量, 43, 527

_SC_PAGE_SIZE常量, 43, 527

_SC_READER_WRITER_LOCKS常量, 57

_SC_REALTIME_SIGNALS常量, 57

_SC_RE_DUP_MAX常量, 43

script程序, 715, 719~720, 734, 736~737, 741~742

_SC_RTSIG_MAX常量, 43

_SC_SAVED_IDS常量, 54, 57, 98, 256

_SC_SEMAPHORES常量, 57

_SC_SEM_NSEMS_MAX常量, 43

_SC_SEM_VALUE_MAX常量, 43

_SC_SHELL常量, 57

_SC_SIGQUEUE_MAX常量, 43

_SC_SPIN_LOCKS常量, 57

_SC_STREAM_MAX常量, 43

_SC_SYMLOOP_MAX常量, 43

_SC_THREAD_ATTR_STACKADDR常量, 429

_SC_THREAD_ATTR_STACKSIZE常量, 429

_SC_THREAD_DESTRUCTOR_ITERATIONS常量, 426

_SC_THREAD_KEYS_MAX常量, 426

_SC_THREAD_PROCESS_SHARED常量, 431

_SC_THREADS常量, 57, 384

_SC_THREAD_SAFE_FUNCTIONS常量, 57, 442

_SC_THREAD_STACK_MIN常量, 426

_SC_THREAD_THREADS_MAX常量, 426

_SC_TIMER_MAX常量, 43

_SC_TIMERS常量, 57

_SC_TTY_NAME_MAX常量, 43

_SC_TZNAME_MAX常量, 43

_SC_V7_ILP32_OFF32常量, 70

_SC_V7_ILP32_OFFBIG常量, 70

_SC_V7_LP64_OFF64常量, 70

_SC_V7_LP64_OFFBIG常量, 70

_SC_VERSION常量, 50, 54, 57

_SC_XOPEN_CRYPT常量, 57

_SC_XOPEN_REALTIME常量, 57

_SC_XOPEN_REALTIME_THREADS常量, 57

_SC_XOPEN_SHM常量, 57

_SC_XOPEN_VERSION常量, 50, 54, 57

<search.h>头文件, 30

sed程序, 950

Seebass, S., 951

seek函数, 67

SEEK_CUR常量, 67, 158, 486, 494~495, 766

seekdir函数, 130~135, 452

函数定义, 130

SEEK_END常量, 67, 158, 486, 494~495, 771~773, 781

SEEK_SET常量, 67, 158, 172, 486, 494~495, 498, 759,

762~763, 765~766, 768~773, 775~780, 818~819,

930~931

SEGV_ACCERR常量, 353

SEGV_MAPERR常量, 353

select函数, 330~331, 343, 451, 481, 501~509, 531~532,

560, 586, 588, 592, 608~609, 626~627, 631~632, 659,

664~666, 668, 718, 732, 742, 805~806, 816~817,

928~929, 933, 936, 939, 942

函数定义, 502

Seltzer, M., 744, 952

semaphore(信号量), 57, 534, 565~571

adjustment on exit(退出时调整信号量), 570~571

locking timing comparison(信号量锁时间比较), 571, 583

<semaphore.h>头文件, 29

sembuf结构, 568~569

sem_close函数, 580, 584

函数定义, 580

semctl函数, 558, 562, 566~568, 570

函数定义, 567

sem_destroy函数, 582

函数定义, 582

SEM_FAILED常量, 584

semget函数, 557~558, 566~567

函数定义, 567

sem_getvalue函数, 582

函数定义, 582

semid_ds结构, 566~568

sem_init函数, 582

函数定义, 582

SEM_NSEMS_MAX常量, 40, 43

semop函数, 452, 559, 567~570

函数定义, 579

sem_open函数, 579~580, 582, 584

函数定义, 579

sem_post函数, 331, 581~582, 584

函数定义, 582

sem_t结构, 582

sem_timedwait函数, 451, 581~582

函数定义, 581

sem_trywait函数, 581, 584

semun联合, 567~568

SEM_UNDO常量, 569~570, 580, 583

sem_unlink函数, 580~581, 584

函数定义, 580

SEM_VALUE_MAX常量, 40, 43, 580

sem_wait函数, 451, 581~582, 584

函数定义, 581

send函数, 331, 451, 592, 610, 616, 626~627

函数定义, 610

send_err函数, 642~644, 653, 656~657, 668~669, 897

函数定义, 642, 644

send_fd函数, 642~645, 649, 653, 656~657, 669, 897

函数定义, 642, 646, 649

sendmsg函数, 331, 451, 611, 613, 644~646, 650, 670

函数定义, 611

sendto函数, 331, 451, 610~611, 620, 622~623

函数定义, 610

S_ERROR常量, 510

serv_accept函数, 636~638, 641, 648, 659, 665, 667~668, 897

函数定义, 636, 638

servent结构, 599

Service Access Facility, 见SAF

Service Management Facility, 见SMF

serv_listen函数, 636~637, 659, 664~665, 667, 670, 897

函数定义, 636~637

session(会话), 295~296

ID(会话ID), 233, 252, 296, 311, 463~464

leader(会话首进程), 295~297, 311, 318, 464~466, 469,

726~727, 742, 944

process group ID(会话进程组ID), 304

session结构, 310~311, 318, 464

set

descriptor(描述符集), 503, 505, 532, 933

signal(信号集), 336, 344~345, 532, 933

SETALL常量, 568, 570

setasync函数定义, 939

setbuf函数, 146~147, 150, 171, 175, 247~248, 701, 930

函数定义, 146

set_cloexec函数, 615, 617, 622, 896

函数定义, 480

setegid函数, 258

函数定义, 258

setenv函数, 212, 251, 442

函数定义, 212

seteuid函数, 258~260

函数定义, 258

set_fl函数, 86, 482~483, 498, 896, 934

函数定义, 85

setgid函数, 256, 258, 288, 331, 816

函数定义, 256

setgrent函数, 183~184, 442, 452

函数定义, 183

set-group-ID(设置组ID), 98~99, 102, 107~108, 110, 129,

140, 233, 253, 317, 496, 546, 723

saved(保存设置组ID), 56, 98, 257

setgroups函数, 184

函数定义, 184

sethostent函数, 452, 597

函数定义, 597

sethostname函数, 189

setitimer函数, 317, 320, 322, 381

_setjmp函数, 355, 358

setjmp函数, 197, 213, 215~219, 225, 340, 343, 355~356,

358, 381, 924

函数定义, 215

<setjmp.h>头文件, 27

setkey函数, 442

setlogmask函数, 470~471

函数定义, 470

setnetent函数, 452, 598

函数定义, 598

setpgid函数, 294, 331

函数定义, 294

setpriority函数, 277

函数定义, 277

setprotoent函数, 452, 598

函数定义, 598

setpwent函数, 180~181, 442, 452

函数定义, 180

setregid函数, 257~258

函数定义, 257

setreuid函数, 257

函数定义, 257

setrlimit函数, 53, 220, 382

函数定义, 220

setservent函数, 452, 599

函数定义, 599

setsid函数, 294~295, 297, 310~311, 331, 464~467, 724,

727~728

函数定义, 295

setsockopt函数, 331, 624~625, 651

函数定义, 624

setspent函数, 182

函数定义, 182

settimeofday函数, 190

setuid函数, 98, 256, 258, 260, 288, 331, 816

函数定义, 256

set-user-ID(设置用户ID), 98~99, 102, 104, 107~108, 110,

129, 140, 182, 233, 253, 256~257, 259, 267, 317, 546,

585~586, 653, 924

saved(保存设置用户ID), 56, 98, 256~260, 288, 337

setutxent函数, 442, 452

SETVAL常量, 568, 570

setvbuf函数, 146~147, 150, 171, 175, 220, 552, 721, 936

函数定义, 146

SGI(Silicon Graphics, Inc.), 35

SGID, 见set-group-ID

SHA-1(SHA-1加密算法), 181

shadow passwords(阴影口令), 181~182, 196, 918

<shadow.h>头文件, 186

S_HANGUP常量, 510

Shannon, W. A., 525, 949

shared

libraries(共享库), 206~207, 226, 753, 920, 947

memory(共享内存), 534, 571~578

sharing, file(文件共享), 74~77, 231

shell, 见Bourne shell, Bourne-again shell, C shell, Debian

Almquist shell, Korn shell, TENEX C shell

SHELL环境变量, 211, 288, 737

shell, job-control(作业控制shell), 294, 299, 306~307, 325,

358, 377, 379, 734~735

shell layers(shell层), 299

shells, 3

S_HIPRI常量, 510

shmat函数, 559, 573~576

函数定义, 574

shmatt_t数据类型, 572

shmctl函数, 558, 562, 573~575

函数定义, 573

shmdt函数, 574

函数定义, 574

shmget函数, 557~558, 572, 575

函数定义, 572

shmid_ds结构, 572~574

SHMLBA常量, 574

SHM_LOCK常量, 573

SHM_RDONLY常量, 574

SHM_RND常量, 574

SHRT_MAX常量, 37

SHRT_MIN常量, 37

shutdown函数, 331, 592~593, 612

函数定义, 592

SHUT_RD常量, 592

SHUT_RDWR常量, 592

SHUT_WR常量, 592

SI_ASYNCIO常量, 353

S_IFBLK常量, 134

S_IFCHR常量, 134

S_IFDIR常量, 134

S_IFIFO常量, 134

S_IFLNK常量, 114, 134

S_IFMT常量, 97

S_IFREG常量, 134

S_IFSOCK常量, 134, 634

sig2str函数, 380~381

函数定义, 380

SIG2STR_MAX常量, 380

SIGABRT信号, 236, 240~241, 275, 313, 317~319, 365~367,

381, 924

sigaction函数, 59, 323, 326, 329~331, 333, 335~336,

349~355, 366, 370, 374, 376, 455, 468, 476, 478~479,

510, 621, 815, 939

函数定义, 350

sigaction结构, 350, 354~355, 366, 369, 374, 376, 379,

467, 476, 478, 621, 814

sigaddset函数, 331, 344~345, 348, 360, 362~363, 370,

374, 378, 456, 478~479, 701, 815, 933

函数定义, 344~345

SIGALRM信号, 313~314, 317, 330~332, 338~340, 342~343,

347, 354, 356~357, 364~365, 373~374, 621

sigaltstack函数, 351

sig_atomic_t数据类型, 59, 356~357, 361~363, 732

SIG_BLOCK常量, 346, 348, 360, 362~363, 370, 374, 454,

456, 477, 701, 815

SIGBUS信号, 317, 352~353, 527, 530

SIGCANCEL信号, 317

SIGCHLD 信号, 238, 288, 315, 317, 331~335, 351~353,

367~368, 370~371, 377, 471, 501, 546, 723, 923, 939

semantics(语义), 332~335

SIGCLD信号, 317, 332~336

SIGCONT信号, 301, 309, 317, 337, 377, 379

sigdelset函数, 331, 344~345, 366, 374, 933

函数定义, 344~345

SIG_DFL常量, 323, 333, 350~351, 366, 378~379, 476

sigemptyset 函数定义, 331, 344, 348, 354~355, 360,

362~363, 369~370, 374, 378, 456, 467, 476, 478, 621,

701, 815, 933

函数定义, 344

SIGEMT信号, 317~318

SIG_ERR 常量, 19, 324, 334, 340~343, 348, 354~356,

360~361, 363, 368, 550, 709, 711, 733

sigevent结构, 512

SIGEV_NONE常量, 518

sigfillset函数, 331, 344, 366, 477, 933

函数定义, 344

SIGFPE信号, 18, 240~241, 317~318, 352~353

SIGFREEZE信号, 317~318

Sigfunc数据类型, 354~355, 896

SIGHUP信号, 308~309, 317~318, 468, 475~479, 546, 815,

830, 843

SIG_IGN常量, 323, 333, 350, 366, 369, 379, 467, 815

SIGILL信号, 317~318, 351~353, 366

SIGINFO信号, 317~318, 682, 689

siginfo结构, 244, 283, 351~352, 376, 379, 381, 512

SIGINT信号, 18~19, 300, 314, 317, 319~320, 340~341, 347,

359~361, 364~365, 367~370, 372, 455~457, 546, 679,

681, 685, 688~689, 701~702, 709, 930, 932

SIGIO信号, 83, 317, 319, 501, 509~510, 627

SIGIOT信号, 317, 319, 365

sigismember函数, 331, 344~345, 347~348, 933

函数定义, 344~345

sigjmp_buf数据类型, 356

SIGJVM1信号, 317

SIGJVM2信号, 317

SIGKILL信号, 272, 275, 315, 317, 319, 321, 323, 346, 380,

735

siglongjmp函数, 219, 331, 355~358, 365

函数定义, 356

SIGLOST信号, 317

SIGLWP信号, 317, 319, 321

signal函数, 18~19, 59, 308, 323~326, 329~335, 339~343,

348~349, 354~356, 360~361, 363, 368, 378, 510, 550,

709, 711, 939

函数定义, 323, 354

signal mask(信号屏蔽字), 336

signal set(信号集), 336, 344~345, 532, 933

<signal.h>头文件, 27, 240, 314, 324, 344~345, 380

signal_intr函数, 330, 355, 364, 382, 508, 733, 896, 930

函数定义, 355

signals(信号), 18~19, 313~382

blocking(信号阻塞), 335

delivery(信号递送), 335

generation(信号产生), 335

generation, pseudo terminal(伪终端信号产生), 741

job-control(作业控制信号), 377~379

null(null信号), 314, 337

pending(未决信号), 335

queueing(信号排队), 336, 349, 376

reliable(可靠信号), 335~336

unreliable(不可靠信号), 326~327

signal_thread函数, 814, 830

函数定义, 830

sigpause函数, 331

sigpending函数, 331, 335, 347~349

函数定义, 347

SIGPIPE信号, 314, 317, 319, 537, 550~551, 553, 556, 587,

611, 815, 936

SIGPOLL信号, 317, 319, 501, 509~510

sigprocmask 函数, 331, 336, 340, 344, 346~349, 360,

362~364, 366, 370, 374, 378, 453~454, 456, 701

函数定义, 346

SIGPROF信号, 317, 320

SIGPWR信号, 317~318, 320

sigqueue函数, 222, 331, 353, 376~377

函数定义, 376

SIGQUEUE_MAX常量, 40, 43, 376

SIGQUIT信号, 300, 317, 320, 347~349, 361~362, 367, 370,

372, 456~457, 546, 681, 689, 702, 709

SIGRTMAX常量, 376

SIGRTMIN常量, 376

SIGSEGV信号, 314, 317, 320, 332, 336, 352~353, 393, 527

sigset函数, 331, 333

sigsetjmp函数, 219, 331, 355~358

函数定义, 356

SIG_SETMASK常量, 346, 348~349, 360, 362~364, 366, 370,

374, 454, 456, 701

sigset_t数据类型, 59, 336, 344, 347~348, 360~361, 363,

366, 369, 374, 378, 454~456, 701, 813

SIGSTKFLT信号, 317, 320

SIGSTOP信号, 315, 317, 320, 323, 346, 377

SIGSUSP信号, 689

sigsuspend函数, 331, 340, 359~365, 374, 451

函数定义, 359

SIGSYS信号, 317, 320

SIGTERM信号, 315, 317, 321, 325, 476~479, 709, 732~733,

742, 815, 830, 944

SIGTHAW信号, 317, 321

SIGTHR信号, 319

sigtimedwait函数, 451

SIGTRAP信号, 317, 321, 351, 353

SIGTSTP信号, 300, 308, 317, 320~321, 377~379, 680, 682,

701, 735

SIGTTIN信号, 300~301, 304, 309, 317, 321, 377, 379

SIGTTOU信号, 301~302, 317, 321, 377, 379, 691

SIG_UNBLOCK常量, 346, 349, 378, 454

SIGURG信号, 83, 314, 317, 319, 322, 510~511, 626

SIGUSR1 信号, 317, 322, 324, 347, 356~358, 360~361,

363~364, 501

SIGUSR2信号, 317, 322, 324, 363~364

sigval结构, 352

SIGVTALRM信号, 317, 322

sigwait函数, 451, 454~455, 457, 475, 477, 830

函数定义, 454

sigwaitinfo函数, 451

SIGWAITING信号, 317, 322

SIGWINCH 信号, 311, 317, 322, 710~712, 718~719,

741~742

SIGXCPU信号, 221, 317, 322

SIGXFSZ信号, 221, 317, 322, 382, 925

SIGXRES信号, 317, 322

Silicon Graphics, Inc., 见 SGI

SI_MESGQ常量, 353

Singh, A., 112, 116, 952

Single UNIX Specification, 见SUS

Version 3, 见 SUSv3

Version 4, 见 SUSv4

single-instance daemons(单实例守护进程), 473~474

S_INPUT常量, 510

SIOCSPGRP常量, 627

SI_QUEUE常量, 353

S_IRGRP常量, 99, 104, 107, 140, 149, 473, 896

S_IROTH常量, 99, 104, 107, 140, 149, 473, 896

S_IRUSR常量, 99, 104, 107, 140, 149, 169, 473, 818, 896

S_IRWXG常量, 107, 639

S_IRWXO常量, 107, 639

S_IRWXU常量, 107, 584, 639

S_ISBLK函数, 96~97, 139

S_ISCHR函数, 96~97, 139, 698

S_ISDIR函数, 96~97, 133, 698

S_ISFIFO函数, 96~97, 535, 552

S_ISGID常量, 99, 107, 140, 498

S_ISLNK函数, 96~97

S_ISREG函数, 96, 808

S_ISSOCK函数, 96~97, 639

S_ISUID常量, 99, 107, 140

S_ISVTX常量, 107~109, 140

SI_TIMER常量, 353

SI_USER常量, 353

S_IWGRP常量, 99, 104, 107, 140, 149

S_IWOTH常量, 99, 104, 107, 140, 149

S_IWUSR常量, 99, 104, 107, 140, 149, 169, 473, 818, 896

S_IXGRP常量, 99, 107, 140, 498, 896

S_IXOTH常量, 99, 107, 140, 896

S_IXUSR常量, 99, 107, 140, 169, 896

size, file(文件大小), 111~112

size程序, 206~207, 226

sizeof操作符, 231

size_t数据类型, 59~60, 71, 507, 772, 906

__SLBF常量, 166

sleep函数, 230, 234, 243, 246, 272, 274, 308, 331, 334,

339~342, 348, 372~375, 381~382, 387, 391~392, 439,

451, 460, 504, 532, 606~607, 923, 925, 928, 931, 936

函数定义, 373~374, 929

sleep程序, 372

sleep2函数, 924

sleep_us函数, 532, 896

函数定义, 933~934

SMF(Service Management Facility,服务管理设施), 293

S_MSG常量, 510

__SNBF常量, 165

snprintf函数, 159, 901, 904

函数定义, 159

Snyder, G., 951

sockaddr结构, 595~597, 605~607, 609, 622, 625, 635,

637, 639, 641, 800

sockaddr_in结构, 595~596, 603

sockaddr_in6结构, 595~596

sockaddr_un结构, 634~638, 640~642

sockatmark函数, 331, 626

函数定义, 626

SOCK_DGRAM常量, 590~591, 602, 608, 612, 621, 623, 632,

941

socket

addressing(套接字寻址), 593~605

descriptors(套接字描述符), 590~593

I/O, asynchronous(异步套接字I/O), 627

I/O, nonblocking(非阻塞套接字I/O), 608~609, 627

mechanism(套接字机制), 95, 534, 587, 589~628

options(套接字选项), 623~625

socket 函数, 148, 331, 590, 592, 607, 609, 621, 625,

637~638, 640~641, 808

函数定义, 590

socketpair函数, 148, 331, 629~630, 632, 634, 941

函数定义, 630

sockets, UNIX domain(UNIX域套接字), 629~642

timing(套接字时间), 565

socklen_t数据类型, 606~607, 609, 622, 625, 800

SOCK_RAW常量, 590~591, 602

SOCK_SEQPACKET常量, 590~591, 602, 605, 609, 612, 625

SOCK_STREAM 常量, 319, 590~591, 602, 605, 609, 612,

614~616, 618~619, 625, 630, 635, 637, 640, 802, 808,

816

Solaris , 3~4, 26~27, 29~30, 35~36, 38, 41, 48~49, 57~60, 62,

64~65, 70, 76, 88, 102, 108~113, 121~122, 129,

131~132, 138, 178, 182, 184~188, 208~209, 211~212,

222, 225, 229, 240, 242, 244~245, 260, 277, 288, 290,

293, 296, 298, 303, 314, 316~323, 329, 334~335, 351,

355, 371, 373, 377, 379~380, 385, 388, 392, 396, 409,

426~427, 432, 439, 471, 485, 496~497, 499, 503,

530~531, 534, 559, 561, 563, 565, 567, 572~573, 576,

592, 594, 607~608, 611~613, 627, 634, 648, 675~678,

684~691, 693, 700, 704, 716~717, 723~724, 726~727,

740~741, 744, 799, 911, 918, 925, 930, 932, 935~936,951

SOL_SOCKET常量, 624~625, 645~646, 650~652

solutions to exercises(习题解答), 905~945

SOMAXCONN常量, 608

SO_OOBINLINE常量, 626

SO_PASSCRED常量, 651

SO_REUSEADDR常量, 625

S_OUTPUT常量, 510

Spafford, G., 181, 250, 298, 949

spawn函数, 234

<spawn.h>头文件, 30

spin locks(自旋锁), 417~418

spooling, printer(打印机假脱机), 793~795

sprintf 函数, 159, 549, 616, 622, 640, 655, 657, 659,

668~669, 759, 772~773, 803, 818~819, 822~823,

825~827, 833~835, 837, 845, 945

函数定义, 159

spwd结构, 918

squid login name(squid登录名), 178

S_RDBAND常量, 510

S_RDNORM常量, 510

sscanf函数, 162, 549, 551, 802~803

函数定义, 162

ssh程序, 293

sshd程序, 465

SSIZE_MAX常量, 38, 41, 71

ssize_t数据类型, 39, 59, 71

stack(栈), 205, 215

stackaddr属性, 427

stacksize属性, 427

standard error(标准错误), 8, 145, 617

standard error routines(标准错误例程), 898~904

standard input(标准输入), 8, 145

standard I/O

alternatives(标准I/O替代方案), 174~175

buffering(带缓冲的标准I/O), 145~147, 231, 235, 265,

367, 552, 721, 752

efficiency(标准I/O效率), 153~156

implementation(标准I/O实现), 164~167

library(标准I/O库), 10, 143~175

streams(标准I/O流), 143~144

versus unbuffered I/O, timing(标准I/O与不带缓冲的I/O的时间比较), 155

standard output(标准输出), 8, 145, 617

standards(标准), 25~33

differences(标准差异), 58~59

START terminal character(START 终端字符), 678,

680~682, 686, 689, 693

stat 函数, 4, 7, 65, 93~95, 97, 99, 107, 121~122, 124,

126~128, 131, 138, 140~141, 170, 331, 452, 586, 592,

628, 639~640, 670, 698, 908, 910, 942

函数定义, 93

stat结构, 93~96, 98, 111, 114, 124, 140, 147, 167, 170,

498, 518, 529, 535, 552, 557, 586, 638, 697~698, 757,

807, 832

static variables(静态变量), 219

STATUS terminal character(STATUS终止符), 678, 682,

687, 689, 703

<stdarg.h>头文件, 27, 162~163, 755, 758

<stdbool.h>头文件, 27

__STDC_IEC_559__常量, 31

<stddef.h>头文件, 27, 635

stderr变量, 145, 483, 731, 901

STDERR_FILENO常量, 62, 145, 618~619, 643, 648,

652, 729

stdin变量, 10, 145, 154, 214, 216, 550~551, 654

STDIN_FILENO常量, 9, 62, 67, 72, 145, 308, 378, 483, 539,

544, 549~550, 619, 655~656, 679, 684, 709, 711, 728,

730~732, 739~740

<stdint.h>头文件, 27, 595

<stdio.h>头文件, 10, 27, 38, 51, 145, 147, 151, 164, 168,

694, 755, 895

<stdlib.h>头文件, 27, 208, 895

stdout变量, 10, 145, 154, 247~248, 275, 901, 921, 930

STDOUT_FILENO常量, 9, 62, 72, 145, 230, 235, 378, 483,

537, 544, 549~550, 614, 618~620, 654~656, 729, 733,

739~740, 921

Stevens, W. R., 157, 291, 470, 505, 589, 717, 793, 952

sticky bit(粘着位), 107~109, 117, 140

stime函数, 190

Stonebraker, M. R., 743, 953

STOP terminal character(STOP终端字符), 678, 680~682,

686, 689, 693

str2sig函数, 380

函数定义, 380

strace程序, 497

Strang, J., 712, 953

strchr函数, 767

stream orientation(流方向), 144

STREAM_MAX常量, 38, 40, 43, 49

STREAMS , 88, 143, 501~502, 506, 508, 510, 534, 560, 565,

648, 716~717, 722, 726, 740

streams, memory(内存流), 171~174

STREAMS module

ldterm, 716, 726

pckt, 716, 740

ptem, 716, 726

ttcompat, 716, 726

streams, standard I/O(标准I/O流), 143~144

STREAMS-based pipes, mounted(装配的基于STREAMS的管道), 534

timing(计时), 565

strerror 函数, 15~16, 24, 380, 442, 452, 471, 474,

478~479, 600, 615~618, 621~622, 657, 669, 823~827,

830, 833~834, 842, 899, 901, 904, 906, 931

函数定义, 15

strerror_r函数, 443, 452

strftime函数, 190, 192~196, 264, 408, 452, 919

函数定义, 192

strftimel函数, 192

函数定义, 192

<string.h>头文件, 27, 895

<strings.h>头文件, 29

strip程序, 920

strlen函数, 12, 231, 945

strncasecmp函数, 840

strncpy函数, 809

Strong, H. R., 744, 750, 949

<stropts.h>头文件, 508, 510

strptime函数, 195

函数定义, 195

strsignal函数, 380, 830

函数定义, 380

strtok函数, 442, 657~658

strtok_r函数, 443

strtol函数, 633

stty程序, 301, 691~692, 702, 713, 943

Stumm, M., 174, 531, 950

S_TYPEISMQ函数, 96

S_TYPEISSEM函数, 96

S_TYPEISSHM函数, 96

su程序, 472

submit_file函数, 807, 809, 811

函数定义, 809

SUID, 见set-user-ID

Sun Microsystems, 33, 35, 76, 740, 953

SunOS, 33, 206, 330, 354

superuser(超级用户), 16

supplementary group ID(附属组ID), 18, 39, 98, 101, 108,

110, 183~184, 233, 252, 258

SUS(Single UNIX Specification), 28, 30~33, 36, 50, 53~54,

57~58, 60~61, 64, 69, 78, 88, 94, 105, 107, 109, 131,

136, 143, 157, 163, 168~169, 180, 183, 190~191, 196,

211~212, 220~221, 234, 239, 244~245, 262, 293, 296,

311, 315, 322, 330, 333, 352, 354, 410, 425, 429~431,

442, 469~472, 485, 496, 501, 507, 509, 521, 527~528,

533~534, 559, 561, 565~566, 572~573, 583, 596, 607,

610, 612, 623, 627, 645, 662, 674, 678, 683, 722~724,

744, 910, 950, 953

SUSP terminal character(SUSP终端字符), 678, 680, 682,

688, 701

SUSv3(Single UNIX Specification, Version 3), 32

SUSv4 (Single UNIX Specification, Version 4), 32, 88, 132,

143, 153, 168~169, 189, 314, 319~320, 336, 375~376,

384, 442, 501, 509~510, 525, 533, 571, 579

SVID(System V Interface Definition), 32~33, 948

SVR2 , 65, 187, 317, 329, 336, 340~341, 712, 948

SVR3 , 76, 129, 201, 299, 313, 317, 319, 326, 329, 333, 336, 496, 502, 507, 898, 948

SVR3.2, 36, 81, 267

SVR4 , 3, 21, 33, 35~36, 48, 63, 65, 76, 121, 187, 209, 290, 296, 299, 310, 313, 317, 329, 333, 336, 469, 502, 507~508, 521, 712, 722, 744, 948, 953

swapper process(交换进程), 227

S_WRBAND常量, 510

S_WRNORM常量, 510

symbolic link(符号链接), 55, 94~95, 110~111, 114, 118,

120~123, 131, 137, 141, 186, 908~909

symlink函数, 123~124, 331, 452

函数定义, 123

symlinkat函数, 123~124, 331, 452

函数定义, 123

SYMLINK_MAX常量, 39, 44, 49

SYMLOOP_MAX常量, 40, 43, 48~49

sync函数, 61, 81, 452

函数定义, 81

sync程序, 81

synchronization mechanisms(同步机制), 86~87

synchronous write(同步写), 63, 86~87

<sys/acct.h>头文件, 269

sysconf函数, 20, 37, 39, 41~48, 50~54, 57, 59~60, 69, 98, 201, 221, 256, 276, 280~281, 384, 425~426, 429, 431, 442, 516, 527, 616, 618, 623, 800, 815, 907

函数定义, 42

sysctl程序, 315, 559

sysdef程序, 559

<sys/disklabel.h>头文件, 88

<sys/filio.h>头文件, 88

<sys/ipc.h>头文件, 30, 558

<sys/iso/signal_iso.h>头文件, 314

syslog 函数, 452, 465, 468~476, 478~480, 615~619,

622~623, 901, 904, 928

函数定义, 470

syslogd程序, 470~471, 473, 475, 479~480

<syslog.h>头文件, 30

<sys/mkdev.h>头文件, 138

<sys/mman.h>头文件, 29

<sys/msg.h>头文件, 30

<sys/mtio.h>头文件, 88

<sys/param.h>头文件, 49, 51

<sys/resource.h>头文件, 30

<sys/select.h>头文件, 29, 501, 504, 932~933

<sys/sem.h>头文件, 30, 568

<sys/shm.h>头文件, 30

sys_siglist变量, 379

<sys/signal.h>头文件, 314

<sys/socket.h>头文件, 29, 608

<sys/sockio.h>头文件, 88

<sys/stat.h>头文件, 29, 97

<sys/statvfs.h>头文件, 29

<sys/sysmacros.h>头文件, 138

system calls(系统调用), 1, 21

interrupted(中断系统调用), 327~330, 343, 351, 354~355,

365, 508

restarted(重启系统调用), 329~330, 342~343, 351, 354,

508, 700

tracing(跟踪系统调用), 497

versus functions(系统调用与函数), 21~23

system函数, 23, 129, 227, 249, 264~269, 281~283, 349,

367~372, 381, 451, 538, 542, 923, 936

函数定义, 265~266, 369

return value(system函数返回值), 371

system identification(系统标识), 187~189

system process(系统进程), 228, 337

System V, 87, 464, 466, 469, 475, 482, 485, 500~501, 506, 509~510, 722, 726

System V Interface Definition, 见SVID

<sys/time.h>头文件, 30, 501

<sys/time.h>头文件, 29

<sys/ttycom.h>头文件, 88

<sys/types.h>头文件, 29, 58, 138, 501, 557, 933

<sys/uio.h>头文件, 30

<sys/un.h>头文件, 29, 634

<sys/utsname.h>头文件, 29

<sys/wait.h>头文件, 29, 239

T

TAB0常量, 691

TAB1常量, 691

TAB2常量, 691

TAB3常量, 690~691

TABDLY常量, 676, 684, 689~691

tar程序, 127, 135, 142, 910~911

<tar.h>头文件, 29

tcdrain函数, 322, 331, 451, 677, 693

函数定义, 693

tcflag_t数据类型, 674

tcflow函数, 322, 331, 677, 693

函数定义, 693

tcflush函数, 145, 322, 331, 673, 677, 693

函数定义, 693

tcgetattr函数, 331, 674, 677, 679, 683~684, 691~692,

695, 701, 705~707, 722, 730~731

函数定义, 683

tcgetpgrp函数, 298~299, 331, 674, 677函数定义, 298

tcgetsid函数, 298~299, 674, 677

函数定义, 299

TCIFLUSH常量, 653

TCIOFF常量, 693

TCIOFLUSH常量, 693

TCION常量, 693

TCMalloc, 210, 949

TCOFLUSH常量, 693

TCOOFF常量, 693

TCOON常量, 693

TCSADRAIN常量, 683

TCSAFLUSH常量, 679, 683, 701, 705~707

TCSANOW常量, 683~684, 728, 731

tcsendbreak函数, 322, 331, 677, 682, 693~694

函数定义, 693

tcsetattr函数, 322, 331, 673~674, 677, 679, 683~684,

691~692, 701, 705~707, 722, 728, 731, 738

函数定义, 683

tcsetpgrp函数, 298~299, 301, 303, 322, 331, 674, 677

函数定义, 298

tee程序, 554~555

tell函数, 67

TELL_CHILD函数, 247~248, 362, 491, 498, 532, 539, 541,

577, 898

函数定义, 363, 540

telldir函数, 130~135

函数定义, 130

TELL_PARENT函数, 247, 362, 491, 532, 539, 541, 577,

898, 934

函数定义, 363, 540

TELL_WAIT函数, 247~248, 362, 491, 498, 532, 539, 577,

898, 934

函数定义, 363, 540

telnet程序, 292~293, 500, 738~739, 742

telnetd程序, 291~292, 500~501, 717, 734, 923, 944

tempnam函数, 169

TENEX C shell, 3

TERM环境变量, 211, 287, 289

termcap , 712~713, 953

terminal

baud rate(终端波特率), 692~693

canonical mode(终端规范模式), 700~703

controlling(终端控制), 63, 233, 252, 270, 292, 295~298,

301, 303~304, 306, 309, 311~312, 318, 321, 377, 463,

465~466, 469, 480, 680, 685, 691, 694, 700, 702, 716,

724, 726~727, 898, 953

identification(终端标识), 694~700

I/O(终端I/O), 671~713

line control(终端行控制), 693~694

logins(终端登录), 285~290

mode, cbreak(cbreak终端模式), 672, 704, 708, 713

mode, cooked(cooked终端模式), 672

mode, raw(原始终端模式), 672, 704, 708, 713, 732, 734 noncanonical mode(非规范模式), 703~710

options(终端选项), 683~691

parity(终端奇偶性), 688

process group ID(终端进程组ID), 303, 463

special input characters(终端特殊输入字符), 678~682

window size(终端窗口大小), 311, 322, 710~712, 718,

727, 741~742

termination, process(进程终止), 198~202

terminfo , 712~713, 949, 953

termio结构, 674

<termio.h>头文件, 674

termios结构, 64, 311, 674, 677~679, 683~684, 692~693, 695, 701,

703~706, 708, 722, 727, 730~732, 738, 741~742, 897, 944

<termios.h>头文件, 29, 88, 674

text segment(正文段), 204

<tgmath.h>头文件, 27

Thompson, K., 75, 181, 229, 743, 951~953

thread-fork interactions(线程-fork交互), 457~461

thread_init函数, 445

threads(线程), 14, 27, 229, 383~423, 578

cancellation options(线程取消选项), 451~453

concepts(线程概念), 383~385

control(线程控制), 425~462

creation(线程创建), 385~388

I/O(线程I/O), 461~462

reentrancy(线程重入), 442~446

synchronization(线程同步), 397~422

termination(线程终止), 388~397

thread-signal interactions(线程-信号交互), 453~457

thread-specific data(线程特定数据), 446~451

thundering herd(惊群效应), 927

tick, clock(时钟滴答), 20, 42~43, 49, 59, 270, 280

time

and date functions(时间和日期函数), 189~196

calendar(日历时间), 20, 24, 59, 126, 189, 191~192, 264, 270

process(进程时间), 20, 24, 59, 280~282

values(时间值), 20

time程序, 20

TIME terminal value(TIME终端值), 687, 703~704, 708,

713, 943

time函数, 189~190, 194, 264, 331, 357, 639~640, 919, 929

函数定义, 189

<time.h>头文件, 27, 59

timeout函数, 439, 462

TIMER_ABSTIME常量, 375

timer_getoverrun函数, 331

timer_gettime函数, 331

TIMER_MAX常量, 40, 43

timer_settime函数, 331, 353

times, file(文件的时间), 124~125, 532

times函数, 42, 59, 280~281, 331, 522

函数定义, 280

timespec 结构, 94, 126, 128, 189~190, 375, 407~408,

413~414, 437~438, 506, 832

time_t数据类型, 20, 59, 94, 189, 192, 196, 906

timeval结构, 190, 414, 421, 437, 503, 506, 805~806,

929, 933

timing

full-duplex pipes(全双工管道时间), 565

message queues(消息队列时间), 565

read buffer sizes(读缓冲区大小时间), 73

read/write versus mmap(读/写时间与mmap时间), 530

standard I/O versus unbuffered I/O(标准I/O时间与非缓冲I/O时间), 155

STREAMS-based pipes(基于STREAMS的管道时间), 565 synchronization mechanisms(同步机制时间), 86~87

UNIX domain sockets(UNIX域套接字时间), 565

writev versus other techniques(writev与其他技术时间), 522

timing comparison, mutex(互斥量时间比较), 571

record locking(记录锁与互斥量时间比较), 571

semaphore locking(信号量锁与互斥量时间比较), 571, 583

TIOCGWINSZ常量, 710~711, 719, 730, 897

TIOCPKT常量, 740

TIOCREMOTE常量, 741

TIOCSCTTY常量, 297~298, 727~728

TIOCSIG常量, 741

TIOCSIGNAL常量, 741

TIOCSWINSZ常量, 710, 718, 728, 741

tip程序, 713

tm结构, 191, 194, 408, 919

TMPDIR环境变量, 211

tmpfile函数, 167~171, 366, 452

函数定义,167

TMP_MAX常量, 38, 168

tmpnam函数, 38, 167~171, 442

函数定义, 167

tms结构, 280~281

TOCTTOU错误, 65, 250, 953

Torvalds, L., 35

TOSTOP常量, 676, 691

touch程序, 127

tracing system calls(跟踪系统调用), 497

transactions, database(数据库事务), 952

TRAP_BRKPT常量, 353

TRAP_TRACE常量, 353

tread函数, 800, 805~806, 825, 838~839

函数定义, 805

treadn函数, 800, 806, 824

函数定义, 806

Trickey, H., 229, 952 truncate函数, 112, 121, 125, 474

函数定义, 112

truncation

file(文件截断), 112

filename(文件名截断), 65~66

pathname(路径名截断), 65~66

truss程序, 497

ttcompat STREAMS模块, 716, 726

tty结构, 311

tty_atexit函数, 705, 731, 897

函数定义, 708

tty_cbreak函数, 704, 709, 897

函数定义, 705

ttymon程序, 290

ttyname函数, 137, 276, 442, 452, 695~696, 699

函数定义, 695, 698

TTY_NAME_MAX常量, 40, 43, 49

ttyname_r函数, 443, 452

tty_raw函数, 704, 709, 713, 731, 897

函数定义, 706

tty_reset函数, 704, 709, 897

函数定义, 707

tty_termios函数, 705, 897

函数定义, 708

type属性, 431

typescript文件, 719, 737

TZ环境变量, 190, 192, 195~196, 211, 919

TZNAME_MAX常量, 40, 43, 49

tzset函数, 452

U

Ubuntu, 7, 26, 35, 290

UCHAR_MAX常量, 37~38

ucontext_t结构, 352

ucred结构, 649, 651

UFS文件系统, 49, 57, 65, 113, 116, 129

UID, 见 user ID

uid_t数据类型, 59

uint16_t数据类型, 595

uint32_t数据类型, 595

UINT_MAX常量, 37~38

ulimit程序, 53, 222

ULLONG_MAX常量, 37

ULONG_MAX常量, 37

umask函数, 104~107, 222, 331, 466~467

函数定义, 104

umask程序, 105, 141

uname函数, 187, 196, 331

函数定义, 187

uname程序, 188, 196

unbuffered I/O(不带缓冲的I/O), 8, 61~91

unbuffered I/O timing, standard I/O versus(标准I/O与不带缓冲的I/O的时间), 155

ungetc函数, 151~152, 452

函数定义, 151

ungetwc函数, 452

uninitialized data segment(未初始化的数据段), 205

<unistd.h>头文件, 9, 29, 53, 62, 110, 442, 501, 755, 895

UNIX Architecture(UNIX体系结构), 1~2

UNIX domain sockets(UNIX域套接字), 629~642

timing(UNIX域套接字时间), 565

UNIX System implementations(UNIX系统实现), 33

Unix-to-Unix Copy, 见UUCP

UnixWare , 35

unlink函数, 114, 116~119, 121~122, 125, 141, 169~170, 331, 366, 452, 497, 553, 637, 639, 641, 823, 826~827, 837, 909, 911 , 937, 942

函数定义, 117

unlinkat函数, 116~119, 331, 452

函数定义, 117

un_lock 函数, 489, 759~760, 762, 768, 770~771, 773,

777~778, 780, 897

unlockpt函数, 723~725

函数定义, 723

Unrau, R., 174, 531, 950

unreliable signals(不可靠信号), 326~327

unsetenv函数, 212, 442

函数定义, 212

update程序, 81

update_jobno函数, 814, 819, 832, 843

函数定义, 819

Upstart, 290

uptime程序, 614~615, 617, 619~620, 622~623, 628

_ _USE_BSD常量, 473

USER环境变量, 210, 288

user ID(用户ID), 16, 255~260

effectiv(e 有效用户ID), 98~99, 101~102, 106, 110, 126, 140, 228, 233, 253, 256~260, 276, 286, 288, 337, 381, 558, 562, 568, 573, 586~587, 637, 640, 809, 918

real(实际用户ID), 39~40, 43, 98~99, 102, 221, 228, 233,

252~253, 256~260, 270, 276, 286, 288, 337, 381, 585, 924

USHRT_MAX常量, 37

usleep函数, 532, 934

UTC(Coordinated Universal Time,国际协调时间), 20, 189,

192, 196

utime函数, 127, 331, 910

UTIME_NOW常量, 126

utimensat函数, 125~128, 331, 452, 910

函数定义, 126

UTIME_OMIT常量, 126~127

utimes函数, 125~128, 141, 331, 452, 910

函数定义, 127

utmp文件, 186~187, 276, 312, 734, 923, 930

utmp结构, 187

utmpx文件, 187

<utmpx.h>头文件, 30

utsname结构, 187~188, 196

UUCP(UNIX-to-UNIX Copy,UNIX间复制), 188

uucp程序, 500

V

V7, 329, 726

va_arg函数, 758

va_end函数, 758, 899~903

va_list数据类型, 758, 899~903

/var/account/acct文件, 269

/var/adm/pacct文件, 269

<varargs.h>头文件, 162

variables

automatic(自动变量), 205, 215, 217, 219, 226

global(全局变量), 219

register(寄存器变量), 217

static(静态变量), 219

volatile(易失变量), 217, 219, 340, 357

/var/log/account/pacct文件, 269

/var/log/wtmp文件, 187

/var/run/utmp文件, 187

va_start函数, 758, 899~903

VDISCARD常量, 678

vdprintf函数, 161, 452

函数定义, 161

VDSUSP常量, 678

VEOF常量, 678~679, 704

VEOL常量, 678, 704

VEOL2常量, 678

VERASE常量, 678

VERASE2常量, 678

vfork函数, 229, 234~236, 283, 921~922

vfprintf函数, 161, 452

函数定义, 161

vfscanf函数, 163

函数定义, 163

vfwprintf函数, 452

vi程序, 377, 497, 499, 672, 711~713, 943

VINTR常量, 678~679

vipw程序, 179

VKILL常量, 678

VLNEXT常量, 678

VMIN常量, 703~705, 707

v-node(v节点), 74~76, 78, 136, 312, 642, 907, 950

vnode结构, 311~312

Vo, K. P., 135, 174, 949~950, 953

volatile variables(易失变量), 217, 219, 340, 357

vprintf函数, 161, 452

函数定义, 161

VQUIT常量, 678

vread函数, 525

VREPRINT常量, 678

vscanf函数, 163

函数定义, 163

vsnprintf函数, 161, 901

函数定义, 161

vsprintf函数, 161, 471

函数定义, 161

vsscanf函数, 163

函数定义, 163

VSTART常量, 678

VSTATUS常量, 678

VSTOP常量, 678

VSUSP常量, 678

vsyslog函数, 472

函数定义, 472

VT0常量, 691

VT1常量, 691

VTDLY常量, 676, 684, 689, 691 VTIME常量, 703~705, 707

VWERASE常量, 678

vwprintf函数, 452

vwrite函数, 525

W

wait 函数, 231~232, 237~246, 249, 255, 264, 267, 280, 282~283, 301, 317, 328~329, 331, 333~335, 351, 368, 371~372, 451, 471, 499, 546, 588, 936

函数定义, 238

wait3函数, 245

函数定义, 245

wait4函数, 245

函数定义, 245

WAIT_CHILD函数, 247, 362, 491, 532, 539, 577, 898, 934

函数定义, 363, 540

waitid函数, 244~245, 283, 451

函数定义, 244

WAIT_PARENT函数, 247~248, 362, 491, 498, 532, 539,

577, 898

函数定义, 363, 540

waitpid函数, 11~13, 19, 23, 237~245, 254, 261, 265~267, 282, 285, 294, 301, 315, 329, 331, 370~371, 451, 498, 538, 545~546, 587~588, 618, 935, 937, 939

函数定义, 238

wall程序, 723

wc程序, 112

<wchar.h>头文件, 27, 144

wchar_t数据类型, 59

WCONTINUED常量, 242, 244

WCOREDUMP函数, 239~240

wcrtomb函数, 442

wcsftime函数, 452

wcsrtombs函数, 442

wcstombs函数, 442

wctomb函数, 442

<wctype.h>头文件, 27

Weeks, M. S., 206, 949

Wei, J., 65, 953

Weinberger, P. J., 76, 262, 743, 947, 953

Weinstock, C. B., 953

WERASE terminal characte(r WERASE终端字符), 678, 682,

685~687, 703

WEXITED常量, 244

WEXITSTATUS函数, 239~240

who程序, 187, 734

WIFCONTINUED函数, 239

WIFEXITED函数, 239~240

WIFSIGNALED函数, 239~240

WIFSTOPPED函数, 239~240, 242

Williams, T., 310, 953

window size

pseudo terminal(伪终端窗口大小), 741

terminal(终端窗口大小), 311, 322, 710~712, 718, 727, 741~742

winsize结构, 311, 710~711, 727, 730, 732, 742, 897, 944

Winterbottom, P., 229, 952

WNOHANG常量, 242, 244

WNOWAIT常量, 242, 244

W_OK常量, 102

WORD_BIT常量, 38

wordexp函数, 452

<wordexp.h>头文件, 29

worker_thread结构, 812~813, 828~829

working directory, 见current directory

worm, Internet(因特网蠕虫), 153

wprintf函数, 452

write

delayed(延迟写), 81

gather(聚集写), 521, 644

synchronous(同步写), 63, 86~87

write程序, 723

write函数, 8~10, 20~21, 59, 61, 63~64, 68~69, 72, 77~79,

86~88, 90, 125, 145~146, 156, 167, 174, 230~231, 234,247, 328~329, 331, 342~343, 378, 382, 451, 474, 482~484, 491, 495~498, 502, 505, 509, 513, 517, 522~526, 530~532, 537~538, 540, 549~551, 553, 555, 560, 565, 587, 590, 592, 610, 614, 620, 643, 654~655, 672, 752, 760, 773, 810, 819, 826, 836, 907~908, 921, 925, 934, 936~937, 945

函数定义, 72

write_lock函数, 489, 493, 498, 818, 897

writen 函数, 523~524, 644, 732~733, 738, 810~811,

824~827, 836, 896

函数定义, 523~524

writev函数, 41, 43, 329, 451, 481, 521~523, 531~532, 592,

611, 644, 655, 660, 752, 771, 773, 832, 836

函数定义, 521

writew_lock函数, 489, 491, 759, 763, 769, 771~772, 777,

787, 897

wscanf函数, 452

WSTOPPED常量, 244

WSTOPSIG函数, 239~240

WTERMSIG函数, 239~240

wtmp文件, 186~187, 312, 923

Wulf, W. A., 953

WUNTRACED常量, 242

X

xargs程序, 252

XCASE常量, 691

Xenix, 33, 485, 726

xinetd程序, 293

X_OK常量, 102

X/Open, 31, 953

X/Open Curses, 32

X/Open Portability Guide(X/Open可移植性指南), 31~32

Issue 3, 见 XPG3

Issue 4, 见XPG4

_XOPEN_CRYPT常量, 31, 57

_XOPEN_IOV_MAX常量, 41

_XOPEN_NAME_MAX常量, 41

_XOPEN_PATH_MAX常量, 41

_XOPEN_REALTIME常量, 31, 57

_XOPEN_REALTIME_THREADS常量, 31, 57

_XOPEN_SHM常量, 57

_XOPEN_SOURCE常量, 57~58

_XOPEN_UNIX常量, 30~31, 57

_XOPEN_VERSION常量, 57

XPG3(X/Open Portability Guide, Issue 3,X/Open可移植

性指南第3版), 33, 953

XPG4(X/Open Portability Guide, Issue 4,X/Open可移植性指南第34版), 32, 54

XSI, 30~31, 53~54, 57, 94, 107, 109, 131~132, 143, 161, 163, 168~169, 180, 183, 211~212, 220, 222, 239, 242, 244~245, 252, 257, 276, 293, 315, 317, 322, 329, 333, 350~352, 377, 429, 431, 442, 469~472, 485, 521, 526, 528, 534, 553, 562~563, 566, 571, 576, 578, 587~588, 666, 676, 685, 687, 689~691, 722, 724, 744, 910

XSI IPC, 556~560

XTABS常量, 690~691

Y

Yigit, O., 744, 952

Z

zombie(僵死进程), 237~238, 242, 283, 333, 351, 923

Table of Contents

目录

扉页

版权

版权声明

译者序

第2版序

前言

第1章 UNIX基础知识

1.1 引言
1.2 UNIX体系结构
1.3 登录
1.4 文件和目录
1.5 输入和输出
1.6 程序和进程
1.7 出错处理
1.8 用户标识
1.9 信号
1.10 时间值
1.11 系统调用和库函数
1.12 小结
习题

第2章 UNIX标准及实现

2.1 引言
2.2 UNIX标准化
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 Single UNIX Specification
2.2.4 FIPS
2.3 UNIX系统实现
2.3.1 SVR4
2.3.2 4.4BSD
2.3.3 FreeBSD
2.3.4 Linux
2.3.5 Mac OS X
2.3.6 Solaris
2.3.7 其他UNIX系统
2.4 标准和实现的关系
2.5 限制
2.5.1 ISO C限制
2.5.2 POSIX限制
2.5.3 XSI限制
2.5.4 函数sysconf、pathconf和fpathconf
2.5.5 不确定的运行时限制
2.6 选项
2.7 功能测试宏
2.8 基本系统数据类型
2.9 标准之间的冲突
2.10 小结
习题

第3章 文件I/O

3.1 引言
3.2 文件描述符
3.3 函数open和openat
3.4 函数creat
3.5 函数close
3.6 函数lseek
3.7 函数read
3.8 函数write
3.9 I/O的效率
3.10 文件共享
3.11 原子操作
3.12 函数dup和dup2
3.13 函数sync、fsync和fdatasync
3.14 函数fcntl
3.15 函数ioctl
3.16 /dev/fd
3.17 小结
习题

第4章 文件和目录

4.1 引言
4.2 函数stat、fstat、fstatat和lstat
4.3 文件类型
4.4 设置用户ID和设置组ID
4.5 文件访问权限
4.6 新文件和目录的所有权
4.7 函数access和faccessat
4.8 函数umask
4.9 函数chmod、fchmod和fchmodat
4.10 粘着位
4.11 函数chown、fchown、fchownat和lchown
4.12 文件长度
4.13 文件截断
4.14 文件系统
4.15 函数link、linkat、unlink、unlinkat和remove
4.16 函数rename和renameat
4.17 符号链接
4.18 创建和读取符号链接
4.19 文件的时间
4.20 函数futimens、utimensat和utimes
4.21 函数mkdir、mkdirat和rmdir
4.22 读目录
4.23 函数chdir、fchdir和getcwd
4.24 设备特殊文件
4.25 文件访问权限位小结
4.26 小结
习题

第5章 标准I/O库

5.1 引言
5.2 流和FILE对象
5.3 标准输入、标准输出和标准错误
5.4 缓冲
5.5 打开流
5.6 读和写流
5.7 每次一行I/O
5.8 标准I/O的效率
5.9 二进制I/O
5.10 定位流
5.11 格式化I/O
5.12 实现细节
5.13 临时文件
5.14 内存流
5.15 标准I/O的替代软件
5.16 小结
习题

第6章 系统数据文件和信息

6.1 引言
6.2 口令文件
6.3 阴影口令
6.4 组文件
6.5 附属组ID
6.6 实现区别
6.7 其他数据文件
6.8 登录账户记录
6.9 系统标识
6.10 时间和日期例程
6.11 小结
习题

第7章 进程环境

7.1 引言
7.2 main函数
7.3 进程终止
7.4 命令行参数
7.5 环境表
7.6 C程序的存储空间布局
7.7 共享库
7.8 存储空间分配
7.9 环境变量
7.10 函数setjmp和longjmp
7.11 函数getrlimit和setrlimit
7.12 小结
习题

第8章 进程控制

8.1 引言
8.2 进程标识
8.3 函数fork
8.4 函数vfork
8.5 函数exit
8.6 函数wait和waitpid
8.7 函数waitid
8.8 函数wait3和wait4
8.9 竞争条件
8.10 函数exec
8.11 更改用户ID和更改组ID
8.12 解释器文件
8.13 函数system
8.14 进程会计
8.15 用户标识
8.16 进程调度
8.17 进程时间
8.18 小结
习题

第9章 进程关系

9.1 引言
9.2 终端登录
9.3 网络登录
9.4 进程组
9.5 会话
9.6 控制终端
9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid
9.8 作业控制
9.9 shell执行程序
9.10 孤儿进程组
9.11 FreeBSD实现
9.12 小结
习题

第10章 信号

10.1 引言
10.2 信号概念
10.3 函数signal
10.4 不可靠的信号
10.5 中断的系统调用
10.6 可重入函数
10.7 SIGCLD语义
10.8 可靠信号术语和语义
10.9 函数kill和raise
10.10 函数alarm和pause
10.11 信号集
10.12 函数sigprocmask
10.13 函数sigpending
10.14 函数sigaction
10.15 函数sigsetjmp和siglongjmp
10.16 函数sigsuspend
10.17 函数abort
10.18 函数system
10.19 函数sleep、nanosleep和clock_nanosleep
10.20 函数sigqueue
10.21 作业控制信号
10.22 信号名和编号
10.23 小结
习题

第11章 线程

11.1 引言
11.2 线程概念
11.3 线程标识
11.4 线程创建
11.5 线程终止
11.6 线程同步
11.6.1 互斥量
11.6.2 避免死锁
11.6.3 函数pthread_mutex_timedlock
11.6.4 读写锁
11.6.5 带有超时的读写锁
11.6.6 条件变量
11.6.7 自旋锁
11.6.8 屏障
11.7 小结
习题

第12章 线程控制

12.1 引言
12.2 线程限制
12.3 线程属性
12.4 同步属性
12.4.1 互斥量属性
12.4.2 读写锁属性
12.4.3 条件变量属性
12.4.4 屏障属性
12.5 重入
12.6 线程特定数据
12.7 取消选项
12.8 线程和信号
12.9 线程和fork
12.10 线程和I/O
12.11 小结
习题

第13章 守护进程

13.1 引言
13.2 守护进程的特征
13.3 编程规则
13.4 出错记录
13.5 单实例守护进程
13.6 守护进程的惯例
13.7 客户进程-服务器进程模型
13.8 小结
习题

第14章 高级I/O

14.1 引言
14.2 非阻塞I/O
14.3 记录锁
14.4 I/O多路转接
14.4.1 函数select和pselect
14.4.2 函数poll
14.5 异步I/O
14.5.1 System V异步I/O
14.5.2 BSD异步I/O
14.5.3 POSIX异步I/O
14.6 函数readv和writev
14.7 函数readn和writen
14.8 存储映射I/O
14.9 小结
习题

第15章 进程间通信

15.1 引言
15.2 管道
15.3 函数popen和pclose
15.4 协同进程
15.5 FIFO
15.6 XSI IPC
15.6.1 标识符和键
15.6.2 权限结构
15.6.3 结构限制
15.6.4 优点和缺点
15.7 消息队列
15.8 信号量
15.9 共享存储
15.10 POSIX信号量
15.11 客户进程-服务器进程属性
15.12 小结
习题

第16章 网络IPC:套接字

16.1 引言
16.2 套接字描述符
16.3 寻址
16.3.1 字节序
16.3.2 地址格式
16.3.3 地址查询
16.3.4 将套接字与地址关联
16.4 建立连接
16.5 数据传输
16.6 套接字选项
16.7 带外数据
16.8 非阻塞和异步I/O
16.9 小结
习题

第17章 高级进程间通信

17.1 引言
17.2 UNIX域套接字
17.3 唯一连接
17.4 传送文件描述符
17.5 open服务器进程第1版
17.6 open服务器进程第2版
17.7 小结
习题

第18章 终端I/O

18.1 引言
18.2 综述
18.3 特殊输入字符
18.4 获得和设置终端属性
18.5 终端选项标志
18.6 stty命令
18.7 波特率函数
18.8 行控制函数
18.9 终端标识
18.10 规范模式
18.11 非规范模式
18.12 终端窗口大小
18.13 termcap、terminfo和curses
18.14 小结
习题

第19章 伪终端

19.1 引言
19.2 概述
19.3 打开伪终端设备
19.4 函数pty_fork
19.5 pty程序
19.6 使用pty程序
19.7 高级特性
19.8 小结
习题

第20章 数据库函数库

20.1 引言
20.2 历史
20.3 函数库
20.4 实现概述
20.5 集中式或非集中式
20.6 并发
20.7 构造函数库
20.8 源代码
20.9 性能
20.10 小结
习题

第21章 与网络打印机通信

21.1 引言
21.2 网络打印协议
21.3 超文本传输协议HTTP
21.4 打印假脱机技术
21.5 源代码
21.6 小结
习题

附录A 函数原型

附录B 其他源代码

附录C 部分习题答案

参考书目

索引