文件IO和进程线程

文件 I/O(Input/Output)

1.进程间的通信方式 6种 
    
    管道(有名和无名)
        有名管道:有名字 有无亲缘关系都能使用 FIFO 先进先出 
                 虽然看见名字了,但是不属于磁盘上的文件系统,存在内存当中
                 
                 不支持lseek操作,不存在文件指针 
                 
                 单工通信 (半双工通信)
                 固定的读端和写端
            
                int ret = mkfifo("/home/linux/bbb",0666);
        
        无名管道: 在文件系统看不见,有亲缘关系间使用
        特点:
                int fd[2];
                
                int ret = pipe(fd);
                
                //fd[0] 读端 
                //fd[1] 写端
        
    
    信号 
        标签:进程间通信唯一的异步通信机制
        
        异步:什么时候来不知道,也没有任何准备
        
        对于信号响应的处理方式 有三种 假设来了一个SIGQUIT信号
        (1) 捕获信号,去执行信号处理函数 
        
            void fun(int num)//捕获到SIGQUIT信号,自动执行fun函数
            {
                ;//num的值,就是捕获的那个信号的编号
            }
            signal(SIGQUIT, fun);
        (2) 忽略信号 
            
            signal(SIGQUIT, SIG_IGN);
            
        (3) 执行默认操作(缺省操作)
        
            signal(SIGQUIT, SIG_DFL);
            
        发送信号:有两个函数 kill raise 
        
        kill();//可以给任意进程,发送任意一个信号
        
        kill(2222, SIGCHLD);//给2222进程,发送 SIGCHLD
        kill(3333, SIGALRM);//给3333进程,发送 SIGALRM
        
        
        raise();//只能给自己当前进程发送任意一个信号
        raise(SIGQUIT);
        raise(SIGINT);
        
        
        alarm(3) //信号 3s之后自动释放SIGALRM信号     
        SIGCHLD //信号 在子进程结束之后,自动给父进程发送这个信号
            
    信号量 
    共享内存 
    消息队列
    socket套接字

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值