当前位置: 首页 > wzjs >正文

建筑网站编辑工作内容百度推广竞价技巧

建筑网站编辑工作内容,百度推广竞价技巧,网站建设要托管服务器,长春网站建设网站制作推广一、引言 空间独立,需要一些操作; 分为三大类: 1、古老的通信方式 无名管道 有名管道 信号 2、IPC对象通信 system v BSD suse fedora kernel.org 消息队列(用的相对少,这里不讨论) …

一、引言
       

空间独立,需要一些操作;

分为三大类:

1、古老的通信方式
        无名管道  有名管道  信号

2、IPC对象通信 system v    BSD     suse fedora   kernel.org
        消息队列(用的相对少,这里不讨论)
        共享内存
        信号量集    

3、socket通信
        网络通信(不同主机间交互)

二、 管道
   

    无名管道 ===》pipe ==》只能给有亲缘关系进程通信
    有名管道 ===》fifo ==》可以给任意单机进程通信

管道特性:

1、管道是 半双工的工作模式
2、所有的管道都是特殊的文件不支持定位操作。不支持lseek->> fd  fseek ->>FILE* 
3、管道是特殊文件,读写使用文件IO。

其中具有缓冲区,可以考虑,如果是字符串的话,使用fgets,fread,fgetc,
最好使用:open,read,write,close;

四句真言(使用的关键)

1.读端存在,一直向管道中去写,超过64k,写会阻塞。


2.写端是存在的,读管道,如果管道为空的话,读会阻塞。(读阻塞)


3.管道破裂,,读端关闭,写管道。

set follow-fork-mode parent

使用gdb调试时,敲上面的命令,进入子进程,一般默认父进程


4. read 0 ,写端关闭,如果管道没有内容,read 0 ;

 

三、管道操作步骤

使用框架:
    创建管道 ==》读写管道 ==》关闭管道 

1、无名管道 ===》管道的特例 ===>pipe函数
    特性:
    1.1  亲缘关系进程使用
    1.2  有固定的读写端

    流程:
    创建并打开管道: pipe函数

#include <unistd.h>
int pipe(int pipefd[2]);
功能:创建并打开一个无名管道
参数:pipefd[0] ==>无名管道的固定读端
           pipefd[1] ==>无名管道的固定写端
返回值:成功 0
        失败 -1;
 

注意事项:
    1、无名管道的架设应该在fork之前进行。
    
无名管道的读写:===》文件IO的读写方式。
    读: read()
    写: write()

关闭管道: close(); 

实现照片复制: 

 1、父子进程是否都有fd[0] fd[1],
   如果在单一进程中写fd[1]能否直接从fd[0]中读到。

   可以,写fd[1]可以从fd[0]读

2、管道的数据存储方式是什么样的
   数据是否一直保留?
    栈, 先进后出
   队列形式存储 读数据会剪切取走数据不会保留
   先进先出

3、管道的数据容量是多少,有没有上限值。
    操作系统的建议值: 512* 8 = 4k
    代码测试实际值:   65536byte= 64k

4、管道的同步效果如何验证?读写同步验证。
    读端关闭能不能写? 不可以 ===>SIGPIPE 异常终止 
    写端关闭能不能读? 可以,取决于pipe有没有内容,===>read返回值为0 不阻塞

    结论:读写端必须同时存在,才能进行管道的读写。
5、固定的读写端是否就不能互换?
    能否写fd[0] 能否读fd[1]?   不可以,是固定读写端。

三、有名管道(本机上的不同进程)
有名管道===》fifo ==》有文件名称的管道。
                      文件系统中可见

3.1 使用步骤
 框架:
    创建有名管道 ==》打开有名管道 ==》读写管道 ==》关闭管道  ==》卸载有名管道

3.2 所需函数
1. mkfifo
#include <sys/types.h>
#include <sys/stat.h>
 remove();

int mkfifo(const char *pathname, mode_t mode);
功能:在指定的pathname路径+名称下创建一个权限为
      mode的有名管道文件。
参数:pathname要创建的有名管道路径+名称
      mode  8进制文件权限。权限一般0666
返回值:成功 0, 失败  -1;

 2、打开有名管道 open
    注意:该函数使用的时候要注意打开方式,
    因为管道是半双工模式,所有打开方式直接决定
    当前进程的读写方式。
    一般只有如下方式:
    int fd-read = open("./fifo",O_RDONLY); ==>fd 是固定读端
    int fd-write = open("./fifo",O_WRONLY); ==>fd 是固定写端
    不能是 O_RDWR 方式打开文件。
    不能有 O_CREAT 选项,因为创建管道有指定的mkfifo函数

3、管道的读写: 文件IO

    读: read(fd-read,buff,sizeof(buff));
    写: write(fd-write,buff,sizeof(buff));

4、关闭管道:
        close(fd); 

5、卸载管道:remove();
        int unlink(const char *pathname);
        功能:将指定的pathname管道文件卸载,同时
              从文件系统中删除。
        参数: ptahtname 要卸载的有名管道 
        返回值:成功 0,失败  -1; 

复制图片: 

有名管道 

    1、是否需要同步,以及同步的位置。
        读端关闭 是否可以写,不能写什么原因。
        写端关闭 是否可以读。

        结论:有名管道执行过程过必须有读写端同时存在。
              如果有一端没有打开,则默认在open函数部分阻塞。

    2、有名管道是否能在fork之后的亲缘关系进程中使用。
        结论: 可以在有亲缘关系的进程间使用。
        注意: 启动的次序可能会导致其中一个稍有阻塞。

    3、能否手工操作有名管道实现数据的传送。
        读: cat  fifoname
        写: echo "asdfasdf" > fifoname

四、信号通信
应用:异步通信。 中断..
    1~64;32应用编程。

//关闭

 Term   Default action is to terminate the process.

//忽略

       Ign    Default action is to ignore the signal.
       wait
// 关闭,并保存关键点信息      

       Core   Default action is to  terminate  the  process  and  dump  core  (see
              core(5)).
        gdb a.out -c core

//暂停
       Stop   Default action is to stop the process.

//继续

       Cont   Default  action  is  to  continue  the  process  if  it is currently  stopped.

1.信号  kill  -l  ==>前32个有具体含义的信号

  信号的含义详见图片 

2.

kill      -xx     xxxx
发送进程  信号    接收进程
    kill -9 1000
    a.out  9 1000         发送端:

    #include <sys/types.h>
    #include <signal.h>
 
    int kill(pid_t pid, int sig);
    功能:通过该函数可以给pid进程发送信号为sig的系统信号。
    参数:pid 要接收信号的进程pid
          sig 当前程序要发送的信号编号 《=== kill  -l
    返回值:成功 0
            失败  -1;
 

2.(与kill相似)

int raise(int sig)== kill(getpid(),int sig);
    功能:给进程自己发送sig信号

3.

    unsigned int alarm(unsigned int seconds);
SIGALAM
    功能:定时由系统给当前进程发送信号,也称为闹钟函数

          闹钟只有一个,定时只有一次有效,
          但是必须根据代码逻辑是否执行判断。

4.

int pause(void);
 功能:进程暂停,不再继续执行,除非 收到其他信号。

3、接收端
        每个进程都会对信号作出默认响应,但不是唯一响应。
        一般如下三种处理方式:
        1、默认处理
        2、忽略处理 9,19
        3、自定义处理 9,19 捕获 

 信号注册函数原型:(回调函数)
    

 void ( *signal(int signum, void (*handler)(int)) ) (int);
 typedef void (*sighandler_t)(int);
     ===》void (*xx)(int); == void fun(int);
     ===》xx是 void fun(int) 类型函数的函数指针
     ===》typedef void(*xx)(int)   sighandler_t; ///错误
          typedef int   myint;

     ===>sighandler_t signal(int signum, sighandler_t handler);
     ===> signal(int sig, sighandler_t fun);
     ===> signal(int sig, xxx fun);
     ===>fun 有三个宏表示:SIG_DFL 表示默认处理
                           SIG_IGN 表示忽略处理
                           fun     表示自定义处理
 

http://www.dtcms.com/wzjs/3681.html

相关文章:

  • 网站建设怎么寻找客户网络营销广告
  • 设计型网站百度知道在线
  • 荔湾做网站武汉搜索引擎营销
  • 湖州网站建设企业新东方在线教育平台官网
  • 怎么用本机ip做网站网站快速排名推荐
  • 打码挂机网站建设百度做广告多少钱
  • 网站备案要关闭吗网站的推广方案的内容有哪些
  • 淮安神舟建设招标网站2021最近比较火的营销事件
  • 网站建立百度信任新乡百度网站优化排名
  • 做设计在哪个网站找图片关键词优化seo外包
  • 高职两学一做专题网站地推任务网
  • 网站的建设流程具体有哪些百度招聘2022年最新招聘
  • 高明网站设计案例2022最近热点事件及评述
  • 有专门做网站的公司谷歌seo外包
  • 免费推广seo重庆seo公司排名
  • 单位做好职工养老保险中断补缴的新闻网络优化工具app手机版
  • 网站快速过备案百度关键词相关性优化软件
  • 网站开发 保密期限ios微信上的pdf乱码
  • 网站301重定向怎么做广告牌
  • 如何做不同域名跳转同一个网站搜索引擎有哪些好用
  • 东莞网站建设乐云seo在线制作培训机构优化
  • 中山做百度网站的公司名称软件培训机构
  • 一个域名做多个网站他达拉非片和伟哥区别
  • 制作企业网站多少钱优化设计三年级上册答案语文
  • 免费网络电话软件哪个好用百度小程序关键词优化
  • 普通电脑怎么做网站服务器吗痘痘怎么去除有效果
  • 做店标 做店招的网站关键词挖掘站长
  • 网站开发程序员岗位职责网站友链交换平台
  • 建设银行开户行查询网站数字营销软件
  • 查询网站备案时间成人职业技能培训班