• Unix高级编程之进程环境



    进程:运行的程序
    线程:运行的函数

    1.main()
          启动例程
          exit(int main(argc, argv));
    2.进程终止
    进程正常终止:
    <1>main() return;
    <2>exit(3);
        1)调用终止处理程序
        2)标准IO清理程序
    <3>_exit(2) _Exit(2);
    <4>最后一个线程调用pthread_exit(3);
    <5>最后一个线程从启动例程返回
    异常终止:
    <1>abort(3);
    <2>线程对取消作出响应
    <3>信号终止

    atexit(3);
    钩子函数
    注册函数执行的顺序与其注册的顺序是相反的
    执行条件:main()函数调用return, 或者任意位置调用exit(3);

    3.环境变量和环境表
    "name=value"
    getenv(3);
    setenv(3);

    4.命令行参数的解析
    int getopt(int argc, char **argv, const char *optstring);
    argc 和 argv就是main()函数的两个参数
    optstring有一下规则:
    "-ab:c::"
    <1>以"-"开头表示可以解析非选项参数,返回1
    <2>"a"解析选项参数"-a",返回'a'
    <3>"b:"解析带参数选项"-b argument",返回'b',optarg指向argument
    <4>"c::"解析可带参数的选项"-cargument",返回'c',optarg指向argument,入没有参数optarg==NULL

    作业:
    # ./a.out -Y 4 -M -D -h24 filename

    strftime(3);

    getopt_long(3);
    能解析长格式选项
    --help
    --help arg
    --help=arg

    ls -l /etc/passed
    gcc hello.c -Wall
    tar -cvf bao.tar file1 file2 file3
    -l:选项参数
    /etc/passwd:非选项参数
    -W:带参数的选项 参数all
    -f:带参数的选项 参数bao.tar

    5.c存储分布布局

    6.共享库
    手工装载库
    dlopen();
    dlsym();
    dlclose();

    7.setjmp()和longjmp()
    setjmp(), longjmp()实现函数之间的跳转
    goto实现在函数内部跳转

    8.getrlimit(2)和setrlimit(2)

    有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
  • 相关阅读:
    带箭头提示框
    文本溢出显示省略号
    Git高级操作
    sublime text 2 破解
    python如何画三维图像?
    pytorch梯度下降法讲解(非常详细)
    pytorch数学运算与统计属性入门(非常易懂)
    pytorch张量数据索引切片与维度变换操作大全(非常全)
    pytorch中tensor张量数据基础入门
    pytorch深度学习神经网络实现手写字体识别
  • 原文地址:https://www.cnblogs.com/axjlxy/p/5859867.html
Copyright © 2020-2023  润新知