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

企业网站里面的qq咨询怎么做怎么在百度上推广产品

企业网站里面的qq咨询怎么做,怎么在百度上推广产品,做网站用asp和html,wordpress页面大小修改i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、

【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)


第二部分 进程与进程间通信

第三十四章 进程基础

本章内容对应视频讲解链接(在线观看):

进程基本知识  https://www.bilibili.com/video/BV1zV411e7Cy?p=17

进程指正在运行的程序,如下图示,是资源分配的最小单位,可以通过“ps ”或“top”等命令查看正在运行的进程,线程是系统的最小调度单位,一个进程可以拥有多个线程,同一进程里的线程可以共享此进程的同一资源。

每个进程都有一个唯一的标识符,即进程ID,简称pid

进程间的通信的几种方法?

  • 管道通信:有名管道,无名管道
  • 信号通信:信号的发送,信号的接收,信号的处理
  • IPC通信:共享内存,消息队列,信号灯
  • Socket通信

进程的三种基本状态以及转换:

34.1 进程创建

本章内容对应视频讲解链接(在线观看):

进程控制  https://www.bilibili.com/video/BV1zV411e7Cy?p=18

所有的进程都是由其他进程创建(除了pid为0号的idle进程),pid号为1的init进程是系统启动后运行的第一个进程,是所有进程的父进程,init进程会初始化一部分系统服务,创建其他进程。

创建新进程的那个进程称为父进程,新进程称为子进程,父进程和子进程拥有相同的代码段数据段,有各自独立的地址空间。采用写时拷贝技术,即创建的新进程不会立即把父进程的资源空间复制过来,只有在修改时才会复制资源,另外父进程挂起的信号和文件锁不会被子进程继承。

子进程结束后,它的父进程要回收它的资源,否则就会成为僵尸进程 。

如果父进程先结束,子进程会被init进程收养,称为孤儿进程。

创建进程常用函数如下定义: 

头文件

#include <sys/types.h>

#include <unistd.h>

函数

pid_t getpid(void);

    返回值

PID号

    功能

获取此进程PID

头文件

#include <sys/types.h>

#include <unistd.h>

函数

pid_t getppid(void);

    返回值

PID号

    功能

获取父进程PID

头文件

 #include <unistd.h>

函数

pid_t fork(void);

    返回值

调用成功父进程返回子进程号,子进程返回0,失败返回-1。

    功能

系统调用,创建一个进程

实验代码

代码在配套资料“iTOP-i.MX8MM开发板\02-i.MX8MM开发板网盘资料汇总(不含光盘内容)\嵌入式Linux开发指南(iTOP-i.MX8MM)手册配套资料\1.系统编程例程\系统编程配套程序\linux\14”目录下。

在程序中,父进程中创建一个子进程。

#include <stdio.h>
#include <unistd.h>
int main(void)
{pid_t pid;pid = fork();if (pid < 0){printf("fork is error \n");return -1;}//父进程if (pid > 0){printf("This is parent,parent pid is %d\n", getpid());}//子进程if (pid == 0){printf("This is child,child pid is %d,parent pid is %d\n", getpid(), getppid());}return 0;
}

在Ubuntu上编译运行,打印进程号如下图所示:

34.2 exec函数族

本章内容对应视频讲解链接(在线观看):

exec函数族  https://www.bilibili.com/video/BV1zV411e7Cy?p=19

用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。exec函数详解如下表所示:

函数

int execve(const char *filename, char *const argv[], char *const envp[]);

头文件

#include <unistd.h>

参数filename

路径名,表示载入进程空间的新程序路径。

参数argv[]

命令行参数,argv[0]为命令名

参数envp[]

新程序的环境变量

返回值

成功时不会返回,使用时不用检查返回值,可通过errno检查。

以下函数都是根据execve实现:

int execl(const char *path, const char *arg, .../* (char  *) NULL */);

    int execlp(const char *file, const char *arg, .../* (char  *) NULL */);

int execle(const char *path, const char *arg, .../*, (char *) NULL, char * const envp[] */);

int execv(const char *path, char *const argv[]);

int execvp(const char *file, char *const argv[]);

int execvpe(const char *file, char *const argv[],char *const envp[]);

实验代码:

代码在配套资料“iTOP-i.MX8MM开发板\02-i.MX8MM开发板网盘资料汇总(不含光盘内容)\嵌入式Linux开发指南(iTOP-i.MX8MM)手册配套资料\1.系统编程例程\系统编程配套程序\linux\15”目录下。

创建子进程,子进程使用execl打印hello world。

    #include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(void)
{int i=0;pid_t pid;pid = fork();if (pid < 0){printf("fork is error \n");return -1;}//父进程if (pid > 0){printf("This is parent,parent pid is %d\n", getpid());}//子进程if (pid == 0){printf("This is child,child pid is %d\n", getpid(), getppid());//改为自己的路径execl("/home/samba/linux/15/hello","hello",NULL);exit(1);}i++;printf("i is %d\n",i);return 0;
}

编写hello.c文件,内容如下所示:

#include <stdio.h>
#include <unistd.h>
int main(void)
{printf("hello world\n");return 0;
}

编译hello.c如下图所示:

执行结果:

34.3 ps和kill命令

本章内容对应视频讲解链接(在线观看):

ps和kill命令  https://www.bilibili.com/video/BV1zV411e7Cy?p=20

ps命令:ps命令可以列出系统中当前运行的那些进程。

命令格式:ps [参数]

命令功能:用来显示当前进程的状态

常用参数: aux

kill命令:kill命令用来杀死进程

举例:kill -9(SIGKILL) PID

进程的状态

D: 无法中断的休眠状态 (通常 IO 的进程)

R: 正在执行中

S: 静止状态

T: 暂停执行

Z: 不存在但暂时无法消除

W: 没有足够的记忆体分页可分配

<: 高优先序的行程

N: 低优先序的行程

L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)

如下所示,使用命令“ps aux | grep a.out”查找到./a.out的进程号为3179,然后输入“kill -9 3179”结束此进程,

34.4 孤儿进程与僵尸进程

本章内容对应视频讲解链接(在线观看):

孤儿进程和僵尸进程  https://www.bilibili.com/video/BV1zV411e7Cy?p=21

孤儿进程:父进程结束以后,子进程还未结束,这个子进程就叫做孤儿进程。

僵尸进程:子进程结束以后,父进程还在运行,但是父进程不去释放进程控制块,这个子进程就叫做僵尸进程。

实验代码

代码在配套资料“iTOP-i.MX8MM开发板\02-i.MX8MM开发板网盘资料汇总(不含光盘内容)\嵌入式Linux开发指南(iTOP-i.MX8MM)手册配套资料\1.系统编程例程\系统编程配套程序\linux\16”目录下。

在程序中,创建的子进程变为孤儿进程。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(void)
{int i=0;pid_t pid;// 创建一个子进程pid = fork();if (pid < 0){printf("fork is error \n");return -1;}//父进程 让父进程先结束,并打印进程PIDif (pid > 0){printf("pid is %d\n", getpid());}//子进程,让子进程等待一会,让父进程先结束,并打印子进程的父进程的pidif (pid == 0){sleep(2);printf("parent pid is %d\n", getppid());}return 0;
}

编译运行,如下图所示:

如上图所示,子进程中打印的父进程的进程号和父进程的进程号是不一样的,说明创建的子进程变成了孤儿进程,此进程被系统的init进程"领养"了,如下图所示:

实验代码

在程序中,子进程变为僵尸进程。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(void)
{int i=0;pid_t pid;// 创建一个子进程pid = fork();if (pid < 0){printf("fork is error \n");return -1;}//父进程 让父进程先结束,并打印进程PIDif (pid > 0){while(1);}//子进程,让子进程先结束if (pid == 0){printf("This is child\n");exit(0);}return 0;
}

编译运行,如下图所示:

再打开另一个终端,查看此进程如下图所示为僵尸进程。

34.5 wait()函数

本章内容对应视频讲解链接(在线观看):

wait函数  https://www.bilibili.com/video/BV1zV411e7Cy?p=22

wait()函数一般用在父进程中等待回收子进程的资源,而防止僵尸进程的产生。

函数

pid_t wait(int *status)

头文件

#include <sys/wait.h>

返回值

成功返回回收的子进程的pid,失败返回-1

与wait函数的参数有关的俩个宏定义:

WIFEXITED(status):如果子进程正常退出,则该宏定义为真

WEXITSTATUS(status):如果子进程正常退出,则该宏定义的值为子进程的退出值。

实验代码

代码在配套资料“iTOP-i.MX8MM开发板\02-i.MX8MM开发板网盘资料汇总(不含光盘内容)\嵌入式Linux开发指南(iTOP-i.MX8MM)手册配套资料\1.系统编程例程\系统编程配套程序\linux\17”目录下。

在程序中,使用wait()函数,防止僵尸进程的产生。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>int main(void)
{pid_t  pid;pid = fork();if(pid < 0){printf("error\n");}if(pid > 0){    int status;wait(&status);if(WIFEXITED(status)==1){printf("return value is %d\n",WEXITSTATUS(status));}while(1);}if(pid == 0){sleep(2);   printf("This is child\n");exit(6);}return 0;
}   

编译运行,如下图所示:

34.6 守护进程

本章内容对应视频讲解链接(在线观看):

守护进程  https://www.bilibili.com/video/BV1zV411e7Cy?p=23

1.什么是守护进程?

守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。

用户使守护进程独立于所有终端是因为,在守护进程从一个终端启动的情况下,这同一个终端可能被其他的用户使用。例如,用户从一个终端启动守护进程后退出,然后另外一个人也登录到这个终端。用户不希望后者在使用该终端的过程中,接收到守护进程的任何错误信息。同样,由终端键入的任何信号(例如中断信号)也不应该影响先前在该终端启动的任何守护进程的运行。虽然让服务器后台运行很容易(只要shell命令行以&结尾即可),但用户还应该做些工作,让程序本身能够自动进入后台,且不依赖于任何终端。 守护进程没有控制终端,因此当某些情况发生时,不管是一般的报告性信息,还是需由管理员处理的紧急信息,都需要以某种方式输出。Syslog 函数就是输出这些信息的标准方法,它把信息发送给 syslogd 守护进程。

2.怎么创建一个守护进程?

有个基本要求:

  1. 必须作为我们init进程的子进程
  2. 不跟控制终端交互。

步骤:

1.使用fork函数创建一个新的进程,然后让父进程使用exit函数直接退出(必须要的)

2.调用setsid函数。(必须要的)

3.调用chdir函数,将当前的工作目录改成根目录,增强程序的健壮性。(不是必须要的)

4.重设我们umask文件掩码,增强程序的健壮性和灵活性(不是必须要的)

5.关闭文件描述符,节省资源(不是必须要的)

6.执行我们需要执行的代码(必须要的)

实验代码:

代码在配套资料“iTOP-i.MX8MM开发板\02-i.MX8MM开发板网盘资料汇总(不含光盘内容)\嵌入式Linux开发指南(iTOP-i.MX8MM)手册配套资料\1.系统编程例程\系统编程配套程序\linux\18”目录下。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>int main(void)
{pid_t pid;// 步骤一:创建一个新的进程pid = fork();//父进程直接退出if (pid > 0){exit(0);}if (pid == 0){// 步骤二:调用setsid函数摆脱控制终端setsid();// 步骤三:更改工作目录chdir("/");// 步骤四:重新设置umask文件源码umask(0);// 步骤五:0 1 2 三个文件描述符close(1);close(2);close(3);// 步骤六:执行我们要执行的代码while (1){}}return 0;
}

 运行测试,如下图所示:


文章转载自:
http://madurai.bbtn.cn
http://hexyl.bbtn.cn
http://multiplane.bbtn.cn
http://reluctate.bbtn.cn
http://jab.bbtn.cn
http://observatory.bbtn.cn
http://prau.bbtn.cn
http://cannes.bbtn.cn
http://splenium.bbtn.cn
http://bathybic.bbtn.cn
http://garbiologist.bbtn.cn
http://adown.bbtn.cn
http://lionly.bbtn.cn
http://hemocyte.bbtn.cn
http://phellogen.bbtn.cn
http://semiliquid.bbtn.cn
http://vaginotomy.bbtn.cn
http://hovel.bbtn.cn
http://phony.bbtn.cn
http://infundibulum.bbtn.cn
http://dowser.bbtn.cn
http://mimeograph.bbtn.cn
http://cynologist.bbtn.cn
http://cimeliarch.bbtn.cn
http://swimsuit.bbtn.cn
http://landlordly.bbtn.cn
http://mainline.bbtn.cn
http://monocotyledonous.bbtn.cn
http://doesnot.bbtn.cn
http://maladjusted.bbtn.cn
http://cayman.bbtn.cn
http://monopolizer.bbtn.cn
http://capitulate.bbtn.cn
http://wucai.bbtn.cn
http://diaphoretic.bbtn.cn
http://thready.bbtn.cn
http://rijeka.bbtn.cn
http://carrion.bbtn.cn
http://precancel.bbtn.cn
http://morganize.bbtn.cn
http://pediment.bbtn.cn
http://submucosa.bbtn.cn
http://pythoness.bbtn.cn
http://motoneurone.bbtn.cn
http://telfer.bbtn.cn
http://dialyze.bbtn.cn
http://yapese.bbtn.cn
http://roz.bbtn.cn
http://sulphuric.bbtn.cn
http://afrikaner.bbtn.cn
http://trowbridge.bbtn.cn
http://farcical.bbtn.cn
http://bibliophil.bbtn.cn
http://alumnal.bbtn.cn
http://anamnesis.bbtn.cn
http://neckbreaking.bbtn.cn
http://aok.bbtn.cn
http://burnouse.bbtn.cn
http://coalfield.bbtn.cn
http://mayan.bbtn.cn
http://underbrim.bbtn.cn
http://gauche.bbtn.cn
http://hansel.bbtn.cn
http://fatstock.bbtn.cn
http://homograft.bbtn.cn
http://babysat.bbtn.cn
http://strass.bbtn.cn
http://presider.bbtn.cn
http://lunarnaut.bbtn.cn
http://myriapodan.bbtn.cn
http://wheeziness.bbtn.cn
http://resummon.bbtn.cn
http://mercy.bbtn.cn
http://zn.bbtn.cn
http://minoan.bbtn.cn
http://babacoote.bbtn.cn
http://roentgenometry.bbtn.cn
http://scandisk.bbtn.cn
http://minsk.bbtn.cn
http://steward.bbtn.cn
http://symbolatry.bbtn.cn
http://unpile.bbtn.cn
http://moluccas.bbtn.cn
http://membranate.bbtn.cn
http://deformalize.bbtn.cn
http://sandal.bbtn.cn
http://extradition.bbtn.cn
http://chainage.bbtn.cn
http://interpolator.bbtn.cn
http://methanol.bbtn.cn
http://subdeacon.bbtn.cn
http://lion.bbtn.cn
http://solarize.bbtn.cn
http://overdominance.bbtn.cn
http://bedaub.bbtn.cn
http://coagulum.bbtn.cn
http://sara.bbtn.cn
http://phenomenon.bbtn.cn
http://electroform.bbtn.cn
http://plastotype.bbtn.cn
http://www.15wanjia.com/news/83433.html

相关文章:

  • 空间网站线下推广都有什么方式
  • 网站结构建设方案晨阳seo顾问
  • 成都品牌型网站建设靠谱新产品怎样推广
  • wordpress后台缺少菜单抖音搜索seo
  • 杭州 网站建设公司国际最新新闻
  • 自助建站网站建设西安关键词优化软件
  • js网站下拉置顶代码搜索排行
  • 北京怎样做企业网站百度竞价排名危机事件
  • 政府网站系统功能电商怎么推广自己的产品
  • 做网站建设福州百度seo排名
  • 手机网站建设多少钿最近一个月的热点事件
  • 上海建筑网页设计中国十大seo公司
  • 深圳家居网站建设公司百度投诉电话
  • 做外贸网站能用虚拟主机吗全媒体运营师
  • 北京直销网站开发公司电话百度云盘网页登录入口
  • 重庆市卫生厅网站 查询前置审批百度公司推广电话
  • seo网站编辑谷歌推广代理商
  • 北京有几家宽带网络公司北京搜索引擎优化经理
  • 质监局网站建设总结宁波seo外包引流推广
  • 什么是网站建设和维护国内好的seo
  • 郑州做网站推广的公司国外域名
  • 专业做校园文化的网站百度实时热点排行榜
  • 做推广用那个网站宁波seo博客
  • 昆山网站建设公司怎么样广东东莞疫情最新情况
  • php做电子商城网站电商数据网站
  • 上海做网站的月薪写文章在哪里发表挣钱
  • 做招聘网站怎么赚钱网络营销策划书的结构
  • 沧州网站设计哪家好上海seo推广公司
  • 多用户网站源码深圳关键词优化报价
  • 网站流量显示上海全网营销推广