2014025653《嵌入式系统程序设计》第五周学习总结
实验楼实验总结
I/O实验操作
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fread从给定流 stream 读取数据到ptr 所指向的数组中。
ptr:含义是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
size:要读的每个数据项的字节数,单位是字节
nmemb:要读count个数据项,每个数据项size个字节.
stream:输入流。
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite用于对指定文件流进行写操作。
函数里面的函数同上。
fopen("stu.txt","wb")这句代码的意思是:可以打开stu.txt文件,wb执行只写文件。
![](http://images2015.cnblogs.com/blog/1150707/201705/1150707-20170520183439619-333020003.png)
scanf()函数从控制台往里面输入。
fclose();函数。
![](http://images2015.cnblogs.com/blog/1150707/201705/1150707-20170520184117572-1487630849.png)
linux下进程相关的基本系统调用
1.fork()函数:用于从已存在的进程中创建一个新进程。
![](http://images2015.cnblogs.com/blog/1150707/201705/1150707-20170520184705900-2097406771.png)
2.execlp("ps","ps","-ef",NULL)这个函数相当于调用“ps -ef”用于查看当前所有的进程
3.execl("/bin/ps","ps","-ef",NULL)这个函数要注意写ps的完整路径。结果同上面的函数。
4.execle("/usr/bin/env","env",NULL,envp)这个函数也要指出env的完整路径,envp是指针
5.execve("/usr/bin/env",arg,envp)通过构造指针数组的方式来传递参数,注意参数列表一点要以NULL作为结尾标识符。
6.exit()和_exit()
![](http://images2015.cnblogs.com/blog/1150707/201705/1150707-20170520190033650-341716849.png)
7.waitpid(pc,NULL,WNOHANG)调用waitpid()函数且父进程不堵塞
![](http://images2015.cnblogs.com/blog/1150707/201705/1150707-20170520190255728-1647688636.png)
学习进度条
|
代码行数(新增/累积) |
博客量(新增/累积) |
学习时间(新增/累积) |
重要成长 |
目标 |
5000行 |
9篇 |
180小时 |
熟悉了Linux,vi,gcc |
第一周 |
200/200 |
1/1 |
20/20 |
学会应用vi、gdb和makefile |
第二周 |
400/600 |
1/2 |
20/40 |
学习了如何安装交叉编译工具,Bootloader的配置与编译 |
第三周 |
600/1200 |
1/3 |
20/60 |
知道了I/O的标准,知道了一些控制进程函数的应用 |
第四周 |
800/2000 |
1/4 |
20/80 |
|
第五周 |
800/2800 |
1/5 |
20/100 |
|
第六周 |
600/3200 |
1/6 |
20/120 |
|
第七周 |
600/2800 |
1/7 |
20/140 |
|
第八周 |
600/4400 |
1/8 |
20/160 |
|
第九周 |
600/5000 |
1/9 |
20/180 |
|