# 2014025655 《嵌入式程序设计》第五周学习总结

fread()函数

定义函数:size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
fread是一个函数。从一个文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。
size 要读的每个数据项的字节数,单位是字节
count 要读count个数据项,每个数据项size个字节.
stream 输入流
返回值 返回实际读取到的nmemb 数目

fwrite()函数

size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);
参数size,表示一次写入的数据单元大小,nmemb表示写入的次数。
fork()函数:计算机程序设计中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
成功时fwrite返回的值与nmemb相等;若小于nmemb表示出错了,可以使用perror函数查看错误原因。

exit()函数

exit(1)表示异常退出.这个1是返回给操作系统的。
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。

进程控制编程

fork()函数
用于从已存在的进程中创建一个新进程。
exec()函数
在进程中启动另一个程序执行的方法

exit()和_exit()的用法

_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit 系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件。也就是图中的“清理I/O缓冲”。

wait()和waitpid()用法

从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供了另一种更灵活的方式。
waitpid的返回值比wait稍微复杂一些,一共有3种情况:  
当正常返回的时候,waitpid返回收集到的子进程的进程ID;
如果设置了选项WNOHANG,而调用中waitpid发现没有已退出的子进程可收集,则返回0;      
如果调用中出错,则返回-1,这时errno会被设置成相应的值以指示错误所在;当pid所指示的子进程不存在,或此进程存在,但不是调用进程的子进程,waitpid就会出错返回,这时errno被设置为ECHILD.

posted on 2017-05-23 22:19  gaojieshun  阅读(93)  评论(0编辑  收藏  举报

导航