• 进程和线程


    1.  getenv()获取环境变量

    2.  gedit 1.c 手工置于前台   fg 后台->前台

    3.  getcwd :获取当前目录  printenv:打印环境变量

    4.  getpwuid(getuid())->pw_name

    5.  cd:shell内键命令,不牺牲子进程。

    6、  exit 和 wait 配合使用

      1)void exit(int status); status 返回给父进程,可以被wait接受。并且会强制缓冲存储。status等于0时表示正常。

      2)pid_t wait(int status);

      3)pid_t waitpid(pid_t pid, int * status, int options)  此函数和pid_t fork(void) 都可以接受子进程。

    7.  日志文件所在:/var/log/syslog

    8.  线程编译时要加 -lpthread

    9.  pthread_self()线程号

    10.  memset, bzero 可以将内存清零。

    11.  条件变量(线程间通信,解决空转,信号量由条件变量封装而成)

      1)pthread_cond_wait()  睡了解锁,醒来加锁。

      2)pthread_cond_broadcast()唤醒所有

      3)pthread_cond_signal 唤醒第一个

    12  守护进程创建步骤

      1)创建子进程,父进程退出。

        pid = fork();

        if(pid < 0)

        {

          perror("fork error");

          eixt(1);

        }

        else if(pid > 0)

         exit(0);

      2)在子进程中创建新会话。(前两步骤必须有)

        setpid();(返回进程组ID)

      3)改变当前目录

        chdir("/tmp");

      4)重新设置文件权限掩码

        umask(0);

      5)关闭文件描述符

        for(i = 0; i < getdtablesize(); i++)  close(i);

    13  map 映射4函数(可重入问题)pthread_once  pthread_key_create  pthread_setspecific  pthread_getspecific

    14  线程池中,队列是带缓冲的临界资源。

    15  kill 2 = crtl c  kill -17 (用wait 收尸,接收子进程信号)  kill -18 continue  kill -19 stop  (kill -9 和kill -19 不能被忽略。)

    16  EEXIST(17) File exists

    17  sprintf 字符串拼凑。

    18  无名管道中: fd[0]是负责读, fd[1]是负责写。

    19  close其实是把文件使用记数减去一。

    20  ipcs指令用于查看system V 家族的进程间通信   -m只是查看共享内存。

    21  p->消费者 post  v->生产者 wait

  • 相关阅读:
    过滤字符串
    sql业务分割
    如何用core自动创建model,与数据库连接
    记录日志
    easyui获取选中行上一行的数据
    获取天气插件代码
    粘包问题
    网络编程
    异常处理
    isinstance和issubclass、元类、反射
  • 原文地址:https://www.cnblogs.com/oyjngz101/p/6020929.html
Copyright © 2020-2023  润新知