perl script.pl --f1="t1" --f2="t2" --f3="t4" --f4 < /home/joe/a.txt
script.pl
use Getopt::Long;
my ($f1, $f2, $f3, $f4) ;
GetOptions (
'f1=s' => \$f1,
'f2=s' => \$f2,
'f3=s' => \$f3,
'f4' => \$f4, );
if ($f1) {
system('stty -echo');
print "Password:";
$pwd = ;
system('stty echo');
我收到此错误:
stty: standard input: Inappropriate ioctl for device
Password:stty: standard input: Inappropriate ioctl for device
这是什么错误?我该如何解决?
解决方法:
我认为问题是您正在从重定向的STDIN中读取(因为您< file.txt)
$perl -e 'system("stty -echo");'
stty: standard input: Inappropriate ioctl for device
您可能应该将文件作为参数传递给脚本.
标签:bash,linux,perl
来源: https://codeday.me/bug/20191209/2095887.html
perl script.pl --f1="t1" --f2="t2" --f3="t4" --f4 < /home/joe/a.txtscript.pluse Getopt::Long;my ($f1, $f2, $f3, $f4) ;GetOptions ('f1=s' => \$f1,'f2=s' => \$f2,'f3=s' => \$f3,'f4' => \$...
(编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!)
rootroot@cm-Sys
te
m-Product-Name:/home/wwt/
linux
_r16$ tar zxvf lichee_parrotv1.1_20161202.tar.gz
rootroot@cm-Sys
te
m-Product-Name:/home/wwt/
linux
_r16$ cd lichee/
rootroot@cm-Sys
te
m-Product-Name:/home/wwt/
linux
_r16/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun8iw5p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2.
linux
3. tina
Choice: 2
All available kernel:
0.
linux
-3.4
Choice: 0
All available boards:
0. bell-one
1. evb
2. evb-20
3. evb-30
4. evb-rtl8723bs
5. sc3813r
Choice: 3
rootroot@cm-Sys
te
m-Product-Name:/home/wwt/
linux
_r16/lichee$ ./build.sh
KCONFIG_AUTOCONFIG=/home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/build/buildroot-config/autoconf.h KCONFIG_TRISTA
TE
=/home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/build/buildroot-config/trista
te
.config BUILDROOT_CONFIG=/home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/.config /home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/build/buildroot-config/conf --silentoldconfig Config.in
# make dependencies writ
te
n to .auto.deps
# AT
TE
NTION buildroot devels!
# See top of this file before playing with this auto-preprequisi
te
s!
make[1]:正在离开目录 `/home/wwt/
linux
_r16/lichee/buildroot'
You must install 'makeinfo' on your build machine
makeinfo is usually part of the
te
xinfo package in your distribution
make: *** [dependencies] 错误 1
make:离开目录“/home/wwt/
linux
_r16/lichee/buildroot”
ERROR: build buildroot Failed
rootroot@cm-Sys
te
m-Product-Name:/home/wwt/
linux
_r16/lichee$
d/buildroot-config/conf.o /home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buildroot/build/buildroot-config/zconf.tab.o -o /home/wwt/
linux
_r16/lichee/out/sun8iw5p1/
linux
/common/buil
s
tty
:
standard
input
: In
app
rop
ria
te
ioctl
for
device
网上找了一下,是 /home/oracle/.bash_profile 的设置不同。
原址如下:
https://i
te
r01.com/282019.html
[root@bi-edw-011scripts]# cat monitor.sh
echo `su - oracle <<EOF
export ORACLE_SID=bied.
8.10 更改用户ID和组ID 160
8.10.1 setreuid 和setregid函数 162
8.10.2 se
te
uid和 se
te
gid函数 163
8.10.3 组ID 163
8.11 解释器文件 164
8.12 sys
te
m函数 167
8.13 进程会计 171
8.14 用户标识 175
8.15 进程时间 176
8.16 小结 178
习题 178
第9章 进程关系 180
9.1 引言 180
9.2 终端登录 180
9.2.1 4.3+BSD终端登录 180
9.2.2 SVR4终端登录 182
9.3 网络登录 182
9.3.1 4.3+BSD网络登录 182
9.3.2 SVR4网络登录 183
9.4 进程组 183
9.5 对话期 184
9.6 控制终端 185
9.7 tcgetpgrp 和tcsetpgrp函数 187
9.8 作业控制 187
9.9 shell执行程序 189
9.10 孤儿进程组 193
9.11 4.3+BSD实现 195
9.12 小结 197
习题 197
第10章 信号 198
10.1 引言 198
10.2 信号的概念 198
10.3 signal函数 203
10.3.1 程序起动 205
10.3.2 进程创建 206
10.4 不可靠的信号 206
10.5 中断的系统调用 207
10.6 可再入函数 209
10.7 SIGCLD语义 211
10.8 可靠信号术语和语义 213
10.9 kill和raise函数 213
10.10 alarm和pause函数 214
10.11 信号集 219
10.12 sigprocmask 函数 220
10.13 sigpending函数 222
10.14 sigaction函数 223
10.15 sigsetjmp 和siglongjmp函数 226
10.16 sigsuspend函数 229
10.17 abort函数 234
10.18 sys
te
m函数 235
10.19 sleep函数 240
10.20 作业控制信号 241
10.21 其他特征 243
10.21.1 信号名字 243
10.21.2 SVR4信号处理程序的附
加参数 244
10.21.3 4.3+BSD信号处理程序的附
加参数 244
10.22 小结 244
习题 244
第11章 终端I/O 246
11.1 引言 246
11.2 综述 246
11.3 特殊
输入
字符 250
11.4 获得和设置终端属性 254
11.5 终端选择标志 254
11.6 s
tty
命令 258
11.7 波特率函数 259
11.8 行控制函数 260
11.9 终端标识 260
11.10 规范方式 263
11.11 非规范方式 266
11.12 终端的窗口大小 270
11.13
te
rmcap,
te
rminfo和 curses 271
11.14 小结 272
习题 272
第12章 高级I/O 273
12.1 引言 273
12.2 非阻塞I/O 273
12.3 记录锁 275
12.3.1 历史 276
12.3.2 fcntl记录锁 276
12.3.3 锁的隐含继承和释放 280
12.3.4 4.3+BSD的实现 281
12.3.5 建议性锁和强制性锁 284
12.4 流 288
12.4.1 流消息 289
12.4.2 putmsg和putpmsg函数 290
12.4.3 流
ioctl
操作
291
12.4.4 wri
te
至流
设备
294
12.4.5 写方式 294
12.4.6 getmsg和getpmsg函数 294
12.4.7 读方式 295
12.5 I/O多路转接 296
12.5.1 select函数 298
12.5.2 poll函数 301
12.6 异步I/O 303
12.6.1 SVR4 303
12.6.2 4.3+BSD 303
12.7 readv和wri
te
v函数 304
12.8 readn和wri
te
n函数 306
12.9 存储映射I/O 307
12.10 小结 311
习题 311
第13章 精灵进程 312
13.1 引言 312
13.2 精灵进程的特征 312
13.3 编程规则 313
13.4 出错记录 314
13.4.1 SVR4流log驱动程序 315
13.4.2 4.3+BSD syslog设施 316
13.5 客户机-服务器模型 319
13.6 小结 319
习题 319
第14章 进程间通信 320
14.1 引言 320
14.2 管道 320
14.3 popen和pclose函数 325
14.4 协同进程 330
14.5 FIFO 333
14.6 系统V IPC 335
14.6.1 标识符和关键字 336
14.6.2 许可权结构 337
14.6.3 结构限制 337
14.6.4 优点和缺点 337
14.7 消息队列 338
14.8 信号量 342
14.9 共享存储 346
14.10 客户机-服务器属性 351
14.11 小结 353
习题 353
第15章 高级进程间通信 355
15.1 引言 355
15.2 流管道 355
15.3 传送文件描述符 358
15.3.1 SVR4 360
15.3.2 4.3BSD 361
15.3.3 4.3+BSD 364
15.4 open服务器第1版 366
15.5 客户机-服务器连接函数 371
15.5.1 SVR4 372
15.5.2 4.3+BSD 375
15.6 open服务器第2版 378
15.7 小结 385
习题 385
第16章 数据库函数库 386
16.1 引言 386
16.2 历史 386
16.3 函数库 386
16.4 实现概述 388
16.5 集中式或非集中式 390
16.6 并发 391
16.6.1 粗锁 391
16.6.2 细锁 391
16.7 源码 392
16.8 性能 409
16.8.1 单进程的结果 410
16.8.2 多进程的结果 410
16.9 小结 412
习题 412
第17章 与PostScript打印机通信 413
17.1 引言 413
17.2 PostScript通信机制 413
17.3 假脱机打印 415
17.4 源码 417
17.5 小结 434
习题 434
第18章 调制解调器拨号器 435
18.1 引言 435
18.2 历史 435
18.3 程序设计 436
18.4 数据文件 437
18.5 服务器设计 439
18.6 服务器源码 439
18.7 客户机设计 463
18.7.1 终端行规程 463
18.7.2 一个进程还是两个进程 464
18.8 客户机源码 465
18.9 小结 474
习题 474
第19章 伪终端 476
19.1 引言 476
19.2 概述 476
19.2.1 网络登录服务器 477
19.2.2 script程序 478
19.2.3 expect程序 479
19.2.4 运行协同进程 479
19.2.5 观看长时间运行程序的输出 479
19.3 打开伪终端
设备
480
19.3.1 SVR4 481
19.3.2 4.3+BSD 482
19.4 pty_fork函数 484
19.5 pty程序 486
19.6 使用pty程序 489
19.6.1 utmp文件 489
19.6.2 作业控制交互 489
19.6.3 检查长时间运行程序的输出 491
19.6.4 script程序 491
19.6.5 运行协同进程 492
19.6.6 用非交互模式驱动交互式
程序 492
19.7 其他特性 494
19.7.1 打包模式 494
19.7.2 远程模式 494
19.7.3 窗口大小变化 495
19.7.4 信号发生 495
19.8 小结 495
习题 495
附录A 函数原型 497
附录B 其他源代码 512
附录C 习题答案 518
参考书目 536
8.10 更改用户ID和组ID 160
8.10.1 setreuid 和setregid函数 162
8.10.2 se
te
uid和 se
te
gid函数 163
8.10.3 组ID 163
8.11 解释器文件 164
8.12 sys
te
m函数 167
8.13 进程会计 171
8.14 用户标识 175
8.15 进程时间 176
8.16 小结 178
习题 178
第9章 进程关系 180
9.1 引言 180
9.2 终端登录 180
9.2.1 4.3+BSD终端登录 180
9.2.2 SVR4终端登录 182
9.3 网络登录 182
9.3.1 4.3+BSD网络登录 182
9.3.2 SVR4网络登录 183
9.4 进程组 183
9.5 对话期 184
9.6 控制终端 185
9.7 tcgetpgrp 和tcsetpgrp函数 187
9.8 作业控制 187
9.9 shell执行程序 189
9.10 孤儿进程组 193
9.11 4.3+BSD实现 195
9.12 小结 197
习题 197
第10章 信号 198
10.1 引言 198
10.2 信号的概念 198
10.3 signal函数 203
10.3.1 程序起动 205
10.3.2 进程创建 206
10.4 不可靠的信号 206
10.5 中断的系统调用 207
10.6 可再入函数 209
10.7 SIGCLD语义 211
10.8 可靠信号术语和语义 213
10.9 kill和raise函数 213
10.10 alarm和pause函数 214
10.11 信号集 219
10.12 sigprocmask 函数 220
10.13 sigpending函数 222
10.14 sigaction函数 223
10.15 sigsetjmp 和siglongjmp函数 226
10.16 sigsuspend函数 229
10.17 abort函数 234
10.18 sys
te
m函数 235
10.19 sleep函数 240
10.20 作业控制信号 241
10.21 其他特征 243
10.21.1 信号名字 243
10.21.2 SVR4信号处理程序的附
加参数 244
10.21.3 4.3+BSD信号处理程序的附
加参数 244
10.22 小结 244
习题 244
第11章 终端I/O 246
11.1 引言 246
11.2 综述 246
11.3 特殊
输入
字符 250
11.4 获得和设置终端属性 254
11.5 终端选择标志 254
11.6 s
tty
命令 258
11.7 波特率函数 259
11.8 行控制函数 260
11.9 终端标识 260
11.10 规范方式 263
11.11 非规范方式 266
11.12 终端的窗口大小 270
11.13
te
rmcap,
te
rminfo和 curses 271
11.14 小结 272
习题 272
第12章 高级I/O 273
12.1 引言 273
12.2 非阻塞I/O 273
12.3 记录锁 275
12.3.1 历史 276
12.3.2 fcntl记录锁 276
12.3.3 锁的隐含继承和释放 280
12.3.4 4.3+BSD的实现 281
12.3.5 建议性锁和强制性锁 284
12.4 流 288
12.4.1 流消息 289
12.4.2 putmsg和putpmsg函数 290
12.4.3 流
ioctl
操作
291
12.4.4 wri
te
至流
设备
294
12.4.5 写方式 294
12.4.6 getmsg和getpmsg函数 294
12.4.7 读方式 295
12.5 I/O多路转接 296
12.5.1 select函数 298
12.5.2 poll函数 301
12.6 异步I/O 303
12.6.1 SVR4 303
12.6.2 4.3+BSD 303
12.7 readv和wri
te
v函数 304
12.8 readn和wri
te
n函数 306
12.9 存储映射I/O 307
12.10 小结 311
习题 311
第13章 精灵进程 312
13.1 引言 312
13.2 精灵进程的特征 312
13.3 编程规则 313
13.4 出错记录 314
13.4.1 SVR4流log驱动程序 315
13.4.2 4.3+BSD syslog设施 316
13.5 客户机-服务器模型 319
13.6 小结 319
习题 319
第14章 进程间通信 320
14.1 引言 320
14.2 管道 320
14.3 popen和pclose函数 325
14.4 协同进程 330
14.5 FIFO 333
14.6 系统V IPC 335
14.6.1 标识符和关键字 336
14.6.2 许可权结构 337
14.6.3 结构限制 337
14.6.4 优点和缺点 337
14.7 消息队列 338
14.8 信号量 342
14.9 共享存储 346
14.10 客户机-服务器属性 351
14.11 小结 353
习题 353
第15章 高级进程间通信 355
15.1 引言 355
15.2 流管道 355
15.3 传送文件描述符 358
15.3.1 SVR4 360
15.3.2 4.3BSD 361
15.3.3 4.3+BSD 364
15.4 open服务器第1版 366
15.5 客户机-服务器连接函数 371
15.5.1 SVR4 372
15.5.2 4.3+BSD 375
15.6 open服务器第2版 378
15.7 小结 385
习题 385
第16章 数据库函数库 386
16.1 引言 386
16.2 历史 386
16.3 函数库 386
16.4 实现概述 388
16.5 集中式或非集中式 390
16.6 并发 391
16.6.1 粗锁 391
16.6.2 细锁 391
16.7 源码 392
16.8 性能 409
16.8.1 单进程的结果 410
16.8.2 多进程的结果 410
16.9 小结 412
习题 412
第17章 与PostScript打印机通信 413
17.1 引言 413
17.2 PostScript通信机制 413
17.3 假脱机打印 415
17.4 源码 417
17.5 小结 434
习题 434
第18章 调制解调器拨号器 435
18.1 引言 435
18.2 历史 435
18.3 程序设计 436
18.4 数据文件 437
18.5 服务器设计 439
18.6 服务器源码 439
18.7 客户机设计 463
18.7.1 终端行规程 463
18.7.2 一个进程还是两个进程 464
18.8 客户机源码 465
18.9 小结 474
习题 474
第19章 伪终端 476
19.1 引言 476
19.2 概述 476
19.2.1 网络登录服务器 477
19.2.2 script程序 478
19.2.3 expect程序 479
19.2.4 运行协同进程 479
19.2.5 观看长时间运行程序的输出 479
19.3 打开伪终端
设备
480
19.3.1 SVR4 481
19.3.2 4.3+BSD 482
19.4 pty_fork函数 484
19.5 pty程序 486
19.6 使用pty程序 489
19.6.1 utmp文件 489
19.6.2 作业控制交互 489
19.6.3 检查长时间运行程序的输出 491
19.6.4 script程序 491
19.6.5 运行协同进程 492
19.6.6 用非交互模式驱动交互式
程序 492
19.7 其他特性 494
19.7.1 打包模式 494
19.7.2 远程模式 494
19.7.3 窗口大小变化 495
19.7.4 信号发生 495
19.8 小结 495
习题 495
附录A 函数原型 497
附录B 其他源代码 512
附录C 习题答案 518
参考书目 536
------------------------------------------------------------
原书名: Advanced Programming in the UNIX Environment
原出版社: Addison-Wesley
作者: (美)W.Richard S
te
vens, S
te
phen A.Rago [作译者介绍]
译者: 尤晋元 张亚英 戚正伟
丛书名: 图灵程序设计丛书
操作
系统
出版社:人民邮电出版社
ISBN:7115147310
上架时间:2006-5-17
出版日期:2006 年5月
开本:16开
页码:758
版次:2-1
-----------------------------------------------------------
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第2版。在
本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关
标准
变
化很大。本书在保持了前一版风格的基础上,根据最新的
标准
对内容进行了修订和增补,反映了最新的技
术发展。书中除了介绍UNIX文件和目录、
标准
I/O库、系统数据文件和信息、进程环境、进程控制、进程
关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在
此基础上介绍了多个应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附
录中给出了函数原型和部分习题的答案。
本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX/
Linux
程序员都是一本不可或缺的参考书。
-----------------------------------------------------------
第1章unix基础知识1
1.1 引言1
1.2 unix体系结构1
1.3 登录1
1.4 文件和目录3
1.5
输入
和输出6
1.6 程序和进程8
1.7 出错处理10
1.8 用户标识12
1.9 信号14
1.10 时间值15
1.11 系统调用和库函数16
1.12 小结17
第2章unix
标准
化及实现19
2.1 引言19
2.2 unix
标准
化19
2.2.1 iso c 19
2.2.2 ieee posix 20
2.2.3 single unix specification 25
.2.2.4 fips 26
2.3 unix系统实现26
2.3.1 svr4 26
2.3.2 4.4bsd 27
2.3.3 freebsd 27
2.3.4
linux
27
2.3.5 mac os x 28
2.3.6 solaris 28
2.3.7 其他unix系统28
2.4
标准
和实现的关系28
2.5 限制29
2.5.1 iso c限制29
2.5.2 posix限制30
2.5.3 xsi限制32
2.5.4 sysconf、pathconf和fpathconf
2.5.5 不确定的运行时限制38
2.6 选项42
2.7 功能测试宏44
2.8 基本系统数据类型45
2.9
标准
之间的冲突45
2.10 小结46
第3章文件i/o 47
3.1 引言47
3.2 文件描述符47
3.3 open函数48
3.4 creat函数49
3.5 close函数50
3.6 lseek函数50
3.7 read函数53
3.8 wri
te
函数54
3.9 i/o的效率54
3.10 文件共享56
3.11 原子
操作
59
3.12 dup和dup2函数60
3.13 sync、fsync和fdatasync函数61
3.14 fcntl函数62
3.15
ioctl
函数66
3.16 /dev/fd 67
3.17 小结68
第4章文件和目录71
4.1 引言71
4.2 stat、fstat和lstat函数71
4.3 文件类型72
4.4 设置用户id和设置组id 74
4.5 文件访问权限75
4.6 新文件和目录的所有权77
4.7 access函数77
4.8 umask函数79
4.9 chmod和fchmod函数81
4.10 粘住位83
4.11 chown、fchown和lchown函数84
4.12 文件长度85
4.13 文件截短86
4.14 文件系统86
4.15 link、unlink、remove和rename
4.16 符号链接91
4.17 symlink和readlink函数94
4.18 文件的时间94
4.19 utime函数95
4.20 mkdir和rmdir函数97
4.21 读目录98
4.22 chdir、fchdir和getcwd函数102
4.23
设备
特殊文件104
4.24 文件访问权限位小结106
4.25 小结106
习题107
第5章
标准
i/o库109
5.1 引言109
5.2 流和file对象109
5.3
标准
输入
、
标准
输出和
标准
出错110
5.4 缓冲110
5.5 打开流112
5.6 读和写流114
5.7 每次一行i/o 116
5.8
标准
i/o的效率117
5.9 二进制i/o 119
5.10 定位流120
5.11 格式化i/o 121
5.12 实现细节125
5.13 临时文件127
5.14
标准
i/o的替代软件130
5.15 小结130
习题130
第6章系统数据文件和信息133
6.1 引言133
6.2 口令文件133
6.3 阴影口令136
6.4 组文件137
6.5 附加组id138
6.6 实现的区别139
6.7 其他数据文件139
6.8 登录账户记录140
6.9 系统标识141
6.10 时间和日期例程142
6.11 小结146
习题146
第7章进程环境147
7.1 引言147
7.2 main函数147
7.3 进程终止147
7.4 命令行参数151
7.5 环境表152
7.6 c程序的存储空间布局152
7.7 共享库154
7.8 存储器分配154
7.9 环境变量157
7.10 setjmp和longjmp函数159
7.11 getrlimit和setrlimit函数164
7.12 小结168
习题168
第8章进程控制171
8.1 引言171
8.2 进程标识符171
8.3 fork函数172
8.4 vfork函数176
8.5 exit函数178
8.6 wait和waitpid函数179
8.7 waitid函数183
8.8 wait3和wait4函数184
8.9 竞争条件185
8.10 exec函数188
8.11 更改用户id和组id 192
8.12 解释器文件196
8.13 sys
te
m函数200
8.14 进程会计203
8.15 用户标识208
8.16 进程时间208
8.17 小结210
习题211
第9章进程关系213
9.1 引言213
9.2 终端登录213
9.3 网络登录216
9.4 进程组218
9.5 会话219
9.6 控制终端220
9.7 tcgetpgrp、tcsetpgrp和tcgetsid
函数221
9.8 作业控制222
9.9 shell执行程序225
9.10 孤儿进程组228
9.11 freebsd实现230
9.12 小结231
习题232
第10章信号233
10.1 引言233
10.2 信号概念233
10.3 signal函数240
10.4 不可靠的信号242
10.5 中断的系统调用244
10.6 可重入函数246
10.7 sigcld语义248
10.8 可靠信号术语和语义250
10.9 kill和raise函数251
10.10 alarm和pause函数252
10.11 信号集256
10.12 sigprocmask函数258
10.13 sigpending函数259
10.14 sigaction函数261
10.15 sigsetjmp和siglongjmp函数266
10.16 sigsuspend函数268
10.17 abort函数274
10.18 sys
te
m函数276
10.19 sleep函数280
10.20 作业控制信号282
10.21 其他特征284
10.22 小结285
习题285
第11章线程287
11.1 引言287
11.2 线程概念287
11.3 线程标识288
11.4 线程的创建288
11.5 线程终止291
11.6 线程同步297
11.7 小结311
习题311
第12章线程控制313
12.1 引言313
12.2 线程限制313
12.3 线程属性314
12.4 同步属性318
12.5 重入324
12.6 线程私有数据328
12.7 取消选项331
12.8 线程和信号333
12.9 线程和fork 336
12.10 线程和i/o 339
12.11 小结340
习题340
第13章守护进程341
13.1 引言341
13.2 守护进程的特征341
13.3 编程规则342
13.4 出错记录345
13.5 单实例守护进程348
13.6 守护进程的惯例350
13.7 客户进程-服务器进程模型354
13.8 小结354
目录 3
习题354
第14章高级i/o355
14.1 引言355
14.2 非阻塞i/o 355
14.3 记录锁357
14.4 streams 370
14.5 i/o多路转接379
14.5.1 select和pselect函数381
14.5.2 poll函数384
14.6 异步i/o 386
14.6.1 系统v异步i/o 386
14.6.2 bsd异步i/o 387
14.7 readv和wri
te
v函数387
14.8 readn和wri
te
n函数389
14.9 存储映射i/o 390
14.10 小结395
习题396
第15章进程间通信397
15.1 引言397
15.2 管道398
15.3 popen和pclose函数403
15.4 协同进程408
15.5 fifo 412
15.6 xsi ipc 415
15.6.1 标识符和键415
15.6.2 权限结构416
15.6.3 结构限制417
15.6.4 优点和缺点417
15.7 消息队列418
15.8 信号量422
15.9 共享存储427
15.10 客户进程-服务器进程属性432
15.11 小结434
习题434
第16章网络ipc:套接字437
16.1 引言437
16.2 套接字描述符437
16.3 寻址439
16.3.1 字节序440
16.3.2 地址格式441
16.3.3 地址查询442
16.3.4 将套接字与地址绑定449
16.4 建立连接450
16.5 数据传输452
16.6 套接字选项464
16.7 带外数据466
16.8 非阻塞和异步i/o 467
16.9 小结468
习题468
第17章高级进程间通信469
17.1 引言469
17.2 基于streams的管道469
17.2.1 命名的streams管道472
17.2.2 唯一连接473
17.3 unix域套接字476
17.3.1 命名unix域套接字477
17.3.2 唯一连接478
17.4 传送文件描述符482
17.4.1 经由基于streams的管道传送
文件描述符484
17.4.2 经由unix域套接字传送文件
描述符486
17.5 open服务器版本1 493
17.6 open服务器版本2 498
17.7 小结505
习题505
第18章终端i/o507
18.1 引言507
18.2 综述507
18.3 特殊
输入
字符512
18.4 获得和设置终端属性516
18.5 终端选项标志516
18.6 s
tty
命令522
18.7 波特率函数523
18.8 行控制函数524
18.9 终端标识524
18.10 规范模式529
18.11 非规范模式532
18.12 终端的窗口大小537
18.13
te
rmcap,
te
rminfo和curses 539
18.14 小结540
习题540
第19章伪终端541
19.1 引言541
19.2 概述541
19.3 打开伪终端
设备
544
19.3.1 基于streams的伪终端547
19.3.2 基于bsd的伪终端549
19.3.3 基于
linux
的伪终端551
19.4 pty_fork函数553
19.5 pty程序555
19.6 使用pty程序559
19.7 高级特性564
19.8 小结565
习题565
第20章数据库函数库567
20.1 引言567
20.2 历史567
20.3 函数库568
20.4 实现概述569
20.5 集中式或非集中式572
20.6 并发574
20.7 构造函数库574
20.8 源代码575
20.9 性能598
20.10 小结600
习题601
第21章与网络打印机通信603
21.1 引言603
21.2 网络打印协议603
21.3 超文本传输协议605
21.4 打印假脱机技术605
21.5 源代码607
21.6 小结644
习题645
附录a 函数原型647
附录b 其他源代码677
附录c 部分习题答案685
参考书目709
索引715
如果你在运行 `s
tty
` 命令时出现了类似于 "In
app
rop
ria
te
ioctl
for
device
" 的错误,可能是因为该串口
设备
不支持该命令所设置的某些参数,或者该串口
设备
没有正确连接。
你可以先尝试检查该串口
设备
是否正确连接。如果该串口
设备
已经连接,可以尝试使用以下命令来设置串口的速率:
```sh
sudo s
tty
-F /dev/
tty
ACM0 9600 raw -echo
这个命令中,`sudo` 用于以管理员权限运行该命令,`s
tty
` 用于配置串口参数,`-F` 选项指定要配置的串口
设备
,`/dev/
tty
ACM0` 是串口
设备
的路径,你需要根据你的串口
设备
的名称进行修改,`9600` 是要设置的串口速率,`raw` 表示设置为原始模式,`-echo` 表示关闭回显功能。
执行完该命令后,串口的速率就会被修改为 9600,你可以尝试使用 `echo` 命令向该串口
设备
发送数据来测试是否能够正常通信。