1.fread
在文件被打开后,可对文件进行读写等操作,其中读操作的函数为fread()
函数原型 size_t fread (voidptr,size_t size,size_t nmemb,FILEstream)
ptr:存放读入记录的缓冲区
size:读取的记录大小
nmemb:读取的记录数
stream:要读取的文件流
函数返回值
成功:返回实际读取的nmemb数目
失败:EOF
fwrite
fwrite(0函数用于对确定的文件流进行写操作。
函数原型 size_t fwrite (constptr,size_t size,size_t nmemb,FILE*stream)
ptr:存放写入记录的缓冲区
size:写入的记录大小
nmemb:写入的记录数
stream:要写入的文件流
函数返回值
成功:返回实际读取的nmemb数目
失败:EOF
fwrite和fread用于读写记录、用于二进制文件的术如何输出。fwrite是按二进制写入,所以写入数据所占空间是根据数据类型来确定。fread读取文件,可安全用于二进制文件。
exe()函数容易执行失败,所以一定要加上错误判断语句。
常见错误:
找不到文件或路径
数组argv和envp没有用NULL结束
没有对应可执行文件的运行权限
exit: void exit(int status)
_exit: void _exit(int status)
exit()和_exit() 函数终止进程,执行操作时,进程停下剩下的操作。但是两个函数略有不同,_exit()直接终止进程,exit()在终止进程前对目前文件的使用情况进行调查,把文件缓冲区的内容写回文件。
waitpid函数使父进程阻塞,在linux中实现wait()函数调用的就是waitpid()函数。
waitpid函数de参数
pid>0时,只等待进程等于pid的子进程,不收其他进程的影响
pid=-1时,等待任何一个子进程
pid=0时,等待同一个进程组中的任何子进程
pid<-1时,由pid的绝对值绝对进程组
fork()函数是从已有的进程中再创建一个新进程,所创建的新进程是子进程,已有的进程为父进程。子进程再原进程中继承了地址空间,子进程只有进程号和资源使用等。