- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 文件处理与进程控制;本章要点;6.1嵌入式Linux的文件处理;6.1.1 文件描述符及文件处理 ;2、系统调用 ;3、文件处理;6.1.2 open函数和close函数 ;1、open函数;2、close函数;3、示例 ;6.1.3 read函数、write函数和lseek函数;1、read函数 ;2、write函数;3、lseek函数 ;4、示例;6.2 进程与进程控制;6.2.1 进程;1、什么是进程;2、进程的标识;【例6-4】 获取当前进程的进程号PID。 ; 将程序保存为proID.c,使用交叉编译命令arm-linux-gcc进行交叉编译:
[root@localhost test]# arm-linux-gcc -o proID proID.c
将其下载到嵌入式系统开发板上运行该程序:
[root@localhost ex5]# ./proID
PID = 3061
注意,每次执行结果都不一定相同。;3、创建进程;【例6-5】创建一个进程。;将程序保存为process.c,使用交叉编译命令arm-linux-gcc进行交叉编译:
[root@localhost test]# arm-linux-gcc -o process process.c
将其下载到嵌入式系统开发板上运行该程序:
[root@localhost ex5]# ./process
PID = 0
PID = 4138;6.2.2 进程控制;1、调用exec函数运行执行程序;2、exec函数族;【例6-6】应用execlp函数列出当前目录下的所有文件。;在该程序中,首先使用fork()函数创建一个子进程,然后在子进程里使用execlp()函数。从程序中可以看到,这里的参数列表列出了在shell中使用的命令名和选项。
将文件保存为execlp.c,使用交叉编译命令arm-linux-gcc进行交叉编译:
[root@localhost test]# arm-linux-gcc -o execlp execlp.c
将其下载到嵌入式系统开发板上运行该程序,运行结果如下所示:
[root@localhost test]# ./execlp
execlp
execlp.c
proid
proid.c;3、System函数;4、进程调用的应用示例;7 printf(Hello.c Compile successfully! \n);
8 if(fork( )==0)
9 {
10 /* 调用execlp函数执行运行程序命令 */
11 if( execlp(./Hello, Hello, NULL) 0)
12 {
13 printf(execlp error \n);
14 }
15 }
16 sleep(1); /* 延时1秒,以等待Hello的输出结果 */
17 printf(Hello run successfully! \n);
18 }; 将程序保存为comple.c,使用编译命令gcc进行编译程序:
[root@localhost test]#gcc -o comple comple.c
将已经编写好的源程序Hello.c保存在同一目录下,运行comple程序,运行结果如下:
[root@localhost test]# ./comple
Hello.c Compile successfully!
Hello!??
Hello run successfully!;【例6-9】编写计算1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 的程序,将其保存到文件sum.c中,然后自动编译并运行该程序。 ;8 int fd;
9 int len, size_r, size_w;
10 char *buf = #include stdio.h
\n int main()
\n{\nint i,s=0;
\n for(i=1; i=10; i++)
\n {
\n s=s+i;
\n printf(\%d=%d+%d\\n\,s,s-i,i);
\n }
\n } \n;
11 fd=open(sum.c, O_CREAT|O_TRUNC|O_RDWR, 0666);
12 len = strlen(buf);
13 size_w = write(fd, buf, len);
14 ;15 char *buf_r[500];
16
文档评论(0)