miwaiwai

导航

linux编程

1.读取文件流程:

  1.打开文件

  2.读/写文件

  3.关闭文件

2.阻塞和非阻塞是文件的一种属性,只有设备文件和网络文件才有的特性

3.fcntl(fd1,F_DUPFD,0)//0被占用,fcntl使用文件描述符表中可用的最小文件描述符

4.fcntl(fd1,F_DUPFD,7)//7被占用,fcntl使用文件描述符表中可用的最小文件描述符,如果7被占用,就找一个最小的文件描述符

5.管道需要有血缘关系的进程之间通信

  共享映射区(无血缘关系的进程之间通信)

  进程间通信:

    1.管道(使用最简单,有血缘关系进程间)

    2.信号(开销最小,有血缘关系进程间)

    3.共享映射区(无血缘关系进程间)

    4.本地套接字(最稳定,实现复杂度最高)

6.占用磁盘空间:目录,文件,连接文件

  不占用磁盘空间:管道,套接字,字符设备,块设备

7.  

#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>
#include <signal.h>

void myfunc(int signo){
        //printf("hello world\n");
        printf("hello world");
        printf("\n");
        fflush(stdout);

}


int main(void){
//      int i;
//      alarm(10);
//      for(i = 0; ; i++){
//      printf("%d\n",i);
//      //#usleep(10*1000);
//      }
        struct itimerval it,oldit;

        signal(SIGALRM,myfunc);

        it.it_value.tv_sec=2;
        it.it_value.tv_usec=0;

        it.it_interval.tv_sec=5;
        it.it_interval.tv_usec=0;

        if(setitimer(ITIMER_REAL,&it,&oldit)==-1){
        perror("setitimer err");

        return -1;


        }

 

8.  只要子进程状态发生变化,就会发生SIGCHLD信号

  

 

posted on 2023-08-03 20:20  米歪歪  阅读(20)  评论(0编辑  收藏  举报