zoukankan      html  css  js  c++  java
  • C库函数笔记

    一、string.h

    1.memcpy

    函数原型:void *memcpy(void *dest, const void *src, size_t n);

    功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

    返回值:函数返回dest的值。


    二、stdio.h

    1.ferror

    函数原型: int ferror(FILE *stream);

    功 能: 在调用各种输入输出函数(如 putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。 它的一般调用形式为 ferror(fp);

    返回值:如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件 每一次调用输入输出函数,均产生一个新的ferror函 数值,因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。


    三、unistd.h

    1.fork

    函数原型:pid_t forkvoid);

    功能:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。

    返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1。

    2.execlp

    函数原型:int execlp(const char * file,const char * arg,...,(char *)0);

    功能:execlp()会从PATH 环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的argv[0]、argv[1]……,最后一个参数必须用空指针(NULL)作结束。如果用常数0来表示一个空指针,则必须将它强制转换为一个字符指针,否则将它解释为整形参数,如果一个整形数的长度与char * 的长度不同,那么exec函数的实际参数就将出错。如果函数调用成功,进程自己的执行代码就会变成加载程序的代码,execlp()后边的代码也就不会执行了.

    返回值:如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。


    四、signal.h

    函数原型:sig_t signal(int signum,sig_t handler);

    功能:第一个参数signum指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。

    第二个参数handler描述了与信号关联的动作,它可以取以下三种值:
    (1)一个无返回值的函数地址
    此函数必须在signal()被调用前申明,handler中为这个函数的名字。当接收到一个类型为sig的信号时,就执行handler 所指定的函数。这个函数应有如下形式的定义:
    void func(int sig);
    sig是传递给它的唯一参数。执行了signal()调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的哪一部分,就立即执行func()函数。当func()函数执行结束后,控制权返回进程被中断的那一点继续执行。
    (2)SIG_IGN
    这个符号表示忽略该信号,执行了相应的signal()调用后,进程会忽略类型为sig的信号。
    (3)SIG_DFL
    这个符号表示恢复系统对信号的默认处理。
    signal()会依参数signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。当一个信号的信号处理函数执行时,如果进程又接收到了该信号,该信号会自动被储存而不会中断信号处理函数的执行,直到信号处理函数执行完毕再重新调用相应的处理函数。但是如果在信号处理函数执行时进程收到了其它类型的信号,该函数的执行就会被中断。
    返回值:返回先前的信号处理 函数指针,如果有错误则返回SIG_ERR(-1)。

  • 相关阅读:
    Django进阶(三)
    Django进阶(二)
    全局变量初始化顺序探究
    调试实战 —— dll 加载失败之全局变量初始化篇
    10 个实验搞懂命令提示符
    帮 vs2019 找回丢失的 SDK
    从堆里找回“丢失”的代码
    排错实战 —— 解决 c++ 工程编译错: error C2059 'string' illegal token on right side of xxx
    善用 vs 中的错误列表和输出窗口,高效查找 C++ 多工程编译错误
    使用 VMware + win10 + vs2019 从零搭建双机内核调试环境
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3221508.html
Copyright © 2011-2022 走看看