zoukankan      html  css  js  c++  java
  • 2014025678《嵌入式系统程序设计》第七周学习总结

    有名管道

    有名管道可以将两个互不相关的进程实现彼此的通信,

    可以通过路径名来指出,并且在文件系统中是可见的。

    读进程

    1.若管道是阻塞打开,且FIFO内无数据,则读进程一直堵塞下去,直到有数据写入。
    2.不是阻塞打开,不管有没有数据,会立即执行。

    写进程

    阻塞打开,跟读进程一样,直到有东西写入

    2.mkififo()函数

    函数原型

    int mkfifo( const char *pathname, mode_t mode );
    参数:
    可以看出这个函数有需要两个参数。
    第一个参数在系统中创建一个文件。
    第二个参数写FIFO权限。
    返回值:
    成功返回值为0。
    失败返回值为-1。

    注意:
    对命名管道,除非写入方主动打开管道的读取端,否则读取方是无法打开命名管道的。
    Open调用执行后,读取方将被锁住。
    接收和发送是要在两个终端中进行的。首先要启动读管道,然后再启动写管道,如果读的时候没有启动,会一直阻塞。




    其实在很多程序中都会出现类似的情况,因此为了方便,我们在编写程序时都把常用的头文件加上,或者将常用的头文件和函数编写到一个自定义的头文件中。
    警告:隐式声明与内建函数 ‘memset’ 不兼容 Linux Programmer’s Manual MEMSET(3)

    NAME
    memset - fill memory with a constant byte

    SYNOPSIS
    #include <string.h>
    后来发现不是头文件的问题,而是需打开两个终端



    本周学的

  • 相关阅读:
    8常用控件
    7对话框
    6控件
    5Lambda表达式
    4自定义信号和槽函数
    3信号与槽
    2指定父对象
    springboot整合activemq
    springboot整合springtask
    jvm与tomcat启动优化配置
  • 原文地址:https://www.cnblogs.com/yangshuo123/p/6979632.html
Copyright © 2011-2022 走看看