《Linux & Unix C程序员参考大全》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:森林图书工作室编
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2001
  • ISBN:7118025593
  • 页数:426 页
图书介绍:

第1章 错误报告 1

1.1 错误检查 1

1.2 错误代码 1

1.3 错误信息 7

strerror() 7

strerror_r() 7

perror() 7

malloc() 10

2.2 无限制的分配 10

2.1 动态内存分配概念 10

第2章 内存分配 10

free() 12

cfree() 12

realloc() 13

calloc() 14

mallopt() 15

mcheck() 15

mprobe() 16

mallinfo() 17

2.3 obstack 18

obstack_alloc() 19

obstack_init() 19

obstack_copy() 20

obstack_copy0() 20

obstack_free() 20

obstack_blank() 21

obstack_grow() 21

obstack_grow0() 21

obstack_int_grow() 22

obstack_finish() 22

obstack_ptr_grow() 22

obstack_lgrow() 22

obstack_object_size() 23

obstack_room() 23

obstack_lgrow_fast() 23

obstack_·ptr_grow_fast() 23

obstack_int_grow_fast() 24

obstack_blank_fast() 24

obstack_base() 25

obstack_next_free() 25

2.4 变量式自动存储 25

alloca() 26

r_alloc() 27

r_alloc_free() 27

2.5 重新分配 27

r_re_alloc() 28

第3章 字符及字符串处理 29

3.1 字符处理 29

islower() 29

isupper() 29

isalpha() 30

isdigit() 30

isalnum() 30

isxdigit() 30

isblank() 31

isgraph() 31

ispunct() 31

isspace() 31

isprint() 32

iscntrl() 32

3.2 字符转换 32

tolower() 33

toupper() 33

toascii() 33

_tolower() 33

3.3 字符串处理 34

_toupper() 34

strlen() 35

memcpy() 35

memmove() 36

memccpy() 36

memset() 36

strcpy() 37

strncpy() 37

strdup() 37

stpcpy() 38

stpncpy() 38

strndup() 38

strdupa() 39

strndupa() 40

strcat() 40

strncat() 41

bcopy() 41

bzero() 42

memcmp() 42

strcmp() 43

strcasecmp() 43

strncasecmp() 43

strcoll() 44

bcmp() 44

strncmp() 44

strxfrm() 45

memchr() 47

strchr() 47

index() 48

strrchr() 48

rindex() 48

strstr() 48

memmem() 49

strspn() 49

strtok() 50

strcspn() 50

strpbrk() 50

Strtok_r() 51

strsep() 52

第4章 输入/输出 53

4.1 文件 53

clearerr() 54

feof() 54

ferror() 55

ftell() 55

fseek() 55

rewind() 56

fgetpos() 57

fsetpos() 57

fflush() 57

setvbuf() 58

setbuf() 58

setbuffer() 59

setlinebuf() 59

4.2 标准流输入输出 59

fopen() 60

fclose() 61

freopen() 61

fcloseall() 62

fputc() 62

putc() 63

putchar() 63

fputs() 63

puts() 64

putw() 64

fgetc() 64

getc() 65

getchar() 65

getline() 66

getw() 66

getdelim() 67

fgets() 67

gets() 68

ungetc() 68

fread() 69

fwrite() 69

4.3 格式化输出 70

printf() 72

fprintf() 72

snprintf() 73

sprintf() 73

asprintf() 74

obstack_printf() 74

vprintf() 75

vfprintf() 75

vsprintf() 75

vsnprintf() 75

vasprintf() 76

obstack_vprintf() 76

parse_printf_format() 77

4.4 格式化输入 79

scanf() 80

sscanf() 82

vscanf() 82

fscanf() 82

vfscanf() 83

vsscanf() 83

第5章 低级输入输出 84

5.1 低级输入输出函数 85

open() 85

close() 86

read() 86

creat() 86

write() 87

lseek() 88

fdopen() 90

fileno() 90

select() 90

fcntl() 92

dup() 94

dup2() 94

5.2 低级输入输出的宏 95

5.2.1 打开文件操作方式 95

5.2.2 输入输出操作模式 96

5.2.3 文件状态标志 97

5.2.4 文件锁 97

5.2.5 中断驱动输入 99

第6章 文件系统 101

6.1 目录操作 101

getcwd() 101

getwd() 102

chdir() 102

6.2.1 目录项的格式 103

6.2 访问目录 103

6.2.2 打开目录流 104

opendir() 104

6.2.3 读和关闭目录流 104

readdir() 104

readdir_r() 105

closedir() 105

6.2.4 目录流的随机进入 106

rewinddir() 106

telldir() 106

alphasort() 107

scandir() 107

6.2.5 扫描目录内容 107

seekdir() 107

6.3 硬链接 108

link() 108

6.4 符号链接 109

symlink() 109

readlink() 110

6.5 删除文件 111

unlink() 111

rename() 112

6.6 重命名文件 112

remove() 112

rmdir() 112

6.7 创建目录 113

mkdir() 113

6.8 文件属性 114

6.8.1 文件属性的意义 114

6.8.2 读取文件属性 116

stat() 116

fstat() 116

lstat() 116

6.8.3 查看文件类型 117

chown() 118

6.8.4 文件所有者 118

6.8.5 文件模式的访问权限位 119

fchown() 119

6.8.6 访问文件 120

6.8.7 分配文件权限 121

umask() 121

getumask() 121

chmod() 122

fchmod() 122

6.8.8 检查文件的访问权限 123

access() 123

utime() 124

6.8.9 文件时间 124

utimes() 125

6.9 特殊文件的生成 125

mknod() 126

6.10 临时文件 126

tmpfile() 126

tmpnam() 127

tmpnam_r() 127

tempnam() 127

mkstemp() 128

mktemp() 128

7.1 创建管道 130

pipe() 130

第7章 管道和FIFO 130

7.2 建立子进程的管道 132

popen() 132

pclose() 133

7.3 FIFO特殊文件 134

mkfifo() 134

7.4 微量的管道输入/输出 134

8.1 socket概念 135

第8章 socket 135

8.2 socket地址 136

bind() 138

getsockname() 138

8.3 Internet名称空间 139

Inet_aton() 144

inet_addr() 144

inet_network() 144

inet_ntoa() 144

inet_netof() 145

inet_pton() 145

inet_lnaof() 145

inet_makeaddr() 145

inet_ntop() 146

gethostbyname() 146

gethostbyname2() 146

gethostbyaddr() 147

sethostent() 147

gethostent() 147

setservent() 148

getservbyport() 148

getservbyname() 148

endhostent() 148

getservent() 149

endservent() 149

htons() 149

ntohs() 149

htonl() 150

ntohl() 150

getprotobyname() 150

getprotobynumber() 150

getprotoent() 151

endprotoent() 151

setprotoent() 151

8.4 打开和关闭socket 153

socket() 153

shutdown() 153

socketpair() 154

connect() 155

listen() 156

accept() 156

getpeername() 157

send() 157

recv() 158

sendto() 166

8.5 数据包操作 166

recvfrom() 167

8.6 socket选项 170

getsockopt() 172

setsockopt() 172

8.7 网络数据库 173

getnetbyname() 173

getnetbyaddr() 173

setnetent() 173

getnetent() 174

endnetent() 174

9.2 I/O队列 175

ttyname() 175

第9章 低级终端接口 175

9.1 识别终端 175

isatty() 175

9.3 输入的两种模式 176

9.4 终端模式 176

9.4.1 终端模式的数据类型 176

9.4.2 终端模式函数 177

tcgetattr() 177

tcsetattr() 178

9.4.3 终端模式的正确设置 178

9.4.4 输入模式 179

9.4.6 控制模式 181

9.4.5 输出模式 181

9.4.7 本地模式 183

9.4.8 线速度 184

cfgetospeed() 185

cfgetispeed() 185

cfsetospeed() 185

cfsetispeed() 185

cfsetspeed() 186

9.4.9 特殊字符 186

9.4.10 非规范输入 190

tcsendbreak() 191

cfmakeraw() 191

9.5 线控制函数 191

tcdrain() 192

tcflush() 192

tcflow() 193

第10章 数学函数 196

10.1 定义域和值域错误 196

10.2 三角函数 197

sin() 197

cos() 197

tan() 197

atan() 198

atan2() 198

10.3 反三角函数 198

acos() 198

asin() 198

10.4 幂函数和对数函数 199

exp() 199

log() 199

log10() 199

hypot() 200

cbrt() 200

sqrt() 200

pow() 200

expm1() 201

log1p() 201

10.5 双曲函数 201

sinh() 201

cosh() 201

acosh() 202

atanh() 202

10.6 伪随机码 202

asinh() 202

tanh() 202

10.6.1 ISO C随机码函数 203

rand() 203

srand() 203

10.6.2 BSD随机码函数 203

random() 204

srandom() 204

initstate() 204

setstate() 204

finite() 205

isinf() 205

isnan() 205

10.7 非数值 205

10.8 浮点数的判断 205

infnan() 206

10.9 绝对值 206

abs() 206

labs() 206

fabs() 207

cabs() 207

10.10 标准函数 207

frexp() 207

logb() 208

copysign() 208

scalb() 208

ldexp() 208

10.11 取整和求余函数 209

ceil() 209

floor() 209

rint() 209

modf() 209

fmod() 210

drem() 210

10.12 整数的除法 210

strtol() 211

10.13.1 整数的解析 211

div() 211

10.13 数字的解析 211

ldiv() 211

strtoul() 212

strtoq() 212

strtoll() 213

strtouq() 213

strtoull() 213

atol() 213

atoi() 213

strtof() 215

strtod() 215

10.13.2 浮点数的解析 215

strtold() 216

atof() 216

第11章 搜索、排序和模式匹配 217

11.1 搜索和排序 217

bsearch() 217

qsort() 217

11.2 模式匹配 221

fnmatch() 222

glob() 223

regcomp() 225

regexec() 226

regfree() 227

regerror() 227

wordexp() 228

wondfree() 229

第12章 日期和时间 232

12.1 处理器时间 232

12.1.1 查询基本的CPU时间 232

12.1.2 详细的查询流逝的CPU时间 233

times() 233

clock() 233

12.2 日历时间 234

12.2.1 单个日历时间 234

difftime() 234

time() 235

12.2.2 高精度的日历时间 235

gettimeofday() 236

settimeofday() 236

adjtime() 237

12.2.3 分解的时间 237

gmtime() 238

localtime() 238

12.2.4 格式化日期和时间 239

asctime() 239

ctime() 239

mktime() 239

strftime() 240

12.2.5 用TZ指定时区 243

12.2.6 时区的函数和变量 245

tzset() 245

12.3 设置警报 246

getitimer() 247

setitimer() 247

alarm() 248

12.4 等待状态 248

sleep() 248

12.5 资源的使用 249

getrusage() 249

12.6 限制资源的使用 251

getrlimit() 251

setrlimit() 251

getpriority() 253

setpriority() 253

12.7 进程的权限 253

nice() 254

第13章 扩展字符 255

13.1 扩展字符串的转换 255

mbstowcs() 256

wcstombs() 256

mblen() 257

mbtowc() 257

wctomb() 258

13.2 地区化和国际化 261

setlocale() 264

localeconv() 266

第14章 信号处理 268

14.1 标准信号 268

14.1.1 程序错误信号 268

14.1.2 中断信号 270

14.1.3 报警信号 271

14.1.4 异步I/O信号 271

14.1.5 作业控制信号 272

14.1.6 操作错误信号 273

14.1.7 杂项信号 273

psignal() 274

strsignal() 274

14.1.8 信号信息 274

14.2 指定信号行为 275

14.2.1 基本信号处理 275

signal() 275

ssignal() 277

14.2.2 高级信号处理 277

sigaction() 277

14.2.3 sigaction函数的标志 279

14.3 产生信号 279

raise() 282

14.3.1 给自己发信号 282

gsignal() 283

14.3.2 给其他进程发送信号 283

kill() 284

killpg() 285

14.4 阻塞信号 286

14.4.1 信号集 286

sigemptyset() 287

sigfillset() 287

sigaddset() 287

sigprocmask() 288

sigismember() 288

sigdelset() 288

14.4.2 检查未决信号 290

sigpending() 290

14.5 等待信号 292

pause() 292

sigsuspend() 293

14.6 使用分离的信号栈 295

sigaltstack() 296

sigstack() 296

14.7 BSD信号处理 297

sigblock() 298

sigsetmask() 298

sigvec() 298

siginterrupt() 298

sigpause() 299

第15章 进程的启动和终止 300

15.1 程序变量 300

15.1.1 程序变量语法惯例 300

15.1.2 程序选项的解析 301

getopt() 302

15.1.3 长选项的解析 304

getopt_long() 305

15.1.4 子选项的解析 307

getsubopt() 308

15.2 环境变量 310

15.2.1 环境变量的访问 310

getenv() 310

putenv() 311

15.2.2 标准环境变量 311

15.3 程序的终止 312

15.3.1 正常中断 312

exit() 312

15.3.3 退出时的清除 313

15.3.2 Exit状态值 313

atexit() 314

on_exit() 314

15.3.4 程序的异常中断 314

abort() 315

15.3.5 内部中断 315

_exit() 315

15.4 运行一个命令 315

system() 316

15.5 生成进程概念 316

fork() 317

15.7 创建进程 317

getpid() 317

getppid() 317

15.6 进程的识别 317

vfork() 318

15.8 执行一个文件 318

execv() 319

execl() 319

execve() 319

execle() 319

execlp() 320

execvp() 320

15.9 进程的完成 321

waitpid() 321

wait() 322

wait4() 323

15.10 进程完成的状态 323

15.11 BSD的处理等待函数 324

wait3() 324

第16章 作业控制 326

16.1 作业控制的概念 326

16.3 进程的控制终端 327

16.4 对控制终端的访问 327

16.2 可选择的作业控制 327

16.5 被孤立的进程群 328

16.6 作业控制外壳的执行 328

16.6.1 外壳的数据结构 328

16.6.2 外壳的初始化 329

16.6.3 作业的启动 330

16.6.4 前台和后台作业 331

16.6.5 停止和中断作业 332

16.7.2 进程群函数 336

ctermid() 336

16.7.1 识别控制终端 336

16.7 作业控制函数 336

16.6.6 继续停止的作业 336

setsid() 337

setpgid() 337

setpgrp() 338

16.7.3 控制终端的访问函数 338

tcgetpgrp() 338

tcsetpgrp() 339

第17章 系统数据库和名称服务转换 340

17.1 NSS基本概念 340

17.2.1 在NSS配置文件内的服务程序 341

17.2 NSS配置文件 341

17.2.2 NSS配置中的操作 342

17.2.3 NSS配置文件的注意点 342

17.3 NSS模块的内部 343

17.3.1 NSS模块的命名方法 343

17.3.2 NSS模块内函数的接口 343

17.4 NSS的扩展 344

17.4.1 向NSS增加一个服务程序 345

17.4.2 NSS模块函数的内部 345

18.1 用户和组ID号 347

18.2 进程的角色 347

第18章 用户和组 347

18.3 更改进程角色的原因 348

18.4 应用程序如何更改角色 348

18.5 读取进程的角色 348

getuid() 349

getgid() 349

geteuid() 349

getegid() 349

getgroups() 349

18.6 设置用户ID号 350

setuid() 350

setgid() 351

18.7 设置组ID号 351

setreuid() 351

setregid() 352

setgrouds() 352

initgrouds() 352

18.8 允许或者禁止setuid的访问 353

18.9 编写setuid程序的提示 355

18.10 识别登录的用户 355

18.11.1 描述用户的数据结构 356

18.11 用户数据库 356

cuserid() 356

getlogin() 356

18.11.2 查找用户 357

getpwuid() 357

getpwuid_r() 357

getpwnam() 358

getpwnam_r() 358

18.11.3 扫描所有用户列表 358

fgetpwent() 358

setpwent() 359

getpwent() 359

fgetpwent_r() 359

getpwent_r() 360

endpwent() 360

18.11.4 写入一个用户项 360

putpwent() 360

18.12 组数据库 361

18.12.1 描述组的数据结构 361

18.12.2 查找组 361

getgrgid() 361

getgrgid_r() 361

18.12.3 扫描所有组列表 362

fgetgrent() 362

getgrnam() 362

getgrnam_r() 362

fgetgrent_r() 363

setgrent() 363

getgrent() 363

getgrent_r() 364

endgrent() 364

18.13 网络组数据库 364

18.13.1 网络组数据 364

getnetgrent() 365

getnetgrent_r() 365

18.13.2 查找网络组 365

setnetgrent() 365

endnetgrent() 366

18.13.3 判断网络组的从属关系 366

innetgr() 366

第19章 系统信息和配置参数 369

19.1 主机识别 369

gethostname() 369

sethostname() 370

gethostid() 370

sethostid() 370

19.3 一般的容量限制 371

19.2 识别硬件/软件类型 371

uname() 371

19.4 所有的系统选项 373

19.5 支持POSIX的版本 374

19.6 sysconf的使用 374

19.6.1 sysconf的定义 374

sysconf() 374

19.6.2 sysconf参数的常量 375

19.7 一般容量限制的最小值 377

19.8 文件系统容量的限制 378

19.10 文件系统限制的最小值 379

19.9 文件支持的附加特征 379

19.11 pathconf的使用 380

pathconf() 380

fpathconf() 380

19.12 工具程序的容量限制 381

19.13 工具限制的最小值 382

19.14 字符串值参数 382

confstr() 382

第20章 函数库内的C语言工具 384

20.1 内部一致性的检查 384

20.2.2 variadic函数的定义和使用 385

20.2.1 使用variadic函数的原因 385

20.2 variadic函数 385

20.2.3 旧类型的variadic函数 388

20.3 空指针常量 388

20.4 重要的数据类型 389

20.5 数据类型的检测 389

20.5.1 计算一个整型数据类型的宽度 389

20.5.2 整型数的范围 390

20.5.3 浮点型的宏 391

20.5.4 结构内元素偏移量的检测 394

附录A 函数名和宏索引 396

附录B 变量和常量宏索引 411