zoukankan      html  css  js  c++  java
  • 2014025660《嵌入式系统程序设计》第五周学习总结

    本周的实验有以下两个:

    write和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。

    返回值:读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件末尾时返回的记录

    数小于nmemb,也可能返回0。

    fread和fwrite用于读写记录,这里的记录是指一串固定长度的字节,比如一个int、一个结构体或者一个定长数组。参数size指出一条记录的长度,而nmemb指出要读或写多少条记录,这些记录在ptr所指的内存空间中连续存放,共占size * nmemb个字节,fread从文件stream中读出size * nmemb个字节保存到ptr中,而fwrite把ptr中的size * nmemb个字节写到文件stream中。
    
    nmemb是请求读或写的记录数,fread和fwrite返回的记录数有可能小于nmemb指定的记录数。例如当前读写位置距文件末尾只有一条记录的长度,调用fread时指定nmemb为2,则返回值为1。如果当前读写位置已经在文件末尾了,或者读文件时出错了,则fread返回0。如果写文件时出错了,则fwrite的返回值小于nmemb指定的值。下面的例子由两个程序组成,一个程序把结构体保存到文件中,另一个程序和从文件中读出结构体
    
     Linux下头文件:include

    函数定义

    int execl(const char path, const char arg, ...);

    函数说明

    execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结束。

    函数返回值

    成功则不返回值, 失败返回-1, 失败原因存于errno中,可通过perror()打印

    exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束

      return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值..

      exit(1)表示进程正常退出. 返回 1;

      exit(0)表示进程非正常退出. 返回 0.

      进程环境与进程控制(1): 进程的开始与终止

      1. 进程的开始:

      C程序是从main函数开始执行, 原型如下:

      int main(int argc, char *argv[]);

      通常main的返回值是int型, 正确返回0.

      如果main的返回值为void或者无, 某些编译器会给出警告, 此时main的返回值通常是0.

    进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。

    参数status用来保存被收集进程退出时的一些状态,它是一个指向int类型的指针。但如果我们对这个子进程是如何死掉的毫不在意,只想把这个僵尸进程消灭掉,(事实上绝大多数情况下,我们都会这样想),我们就可以设定这个参数为NULL,就象下面这样:

    pid = wait(NULL);

    如果成功,wait会返回被收集的子进程的进程ID,如果调用进程没有子进程,调用就会失败,此时wait返回-1,同时errno被置为ECHILD。

  • 相关阅读:
    Nginx缓存[proxy cache、memcache]
    Nginx重写规则
    同步异步,阻塞非阻塞 和nginx的IO模型
    cookie & session
    HTTP状态码
    web简单的整体测试
    关于 如何用电脑的adb连接Mumu模拟器
    关于社保断交一个月的影响
    关于androidStudio的下载
    可以直接拿来用的android开源项目研究
  • 原文地址:https://www.cnblogs.com/youguorong/p/6896430.html
Copyright © 2011-2022 走看看