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

展示型的网站开发价格wordpress小工具编辑

展示型的网站开发价格,wordpress小工具编辑,如何申请企业邮箱帐号,广东建设职业技术学院网站以下内容源于网络资源的学习与整理#xff0c;如有侵权请告知删除。 一、fork()函数#xff1a;父进程创建子进程 函数原型 所需头文件 #include unistd.h #include sys/types.h 函数原型pid_t fork(void);返回值在子进程中返回0#xff0c;在父进程…以下内容源于网络资源的学习与整理如有侵权请告知删除。 一、fork()函数父进程创建子进程 函数原型 所需头文件         #include unistd.h #include sys/types.h 函数原型pid_t fork(void);返回值在子进程中返回0在父进程中返回子进程的PID失败则返回一个负值。函数作用 fork()函数用于从已经存在的进程中创建一个新进程。新进程叫做子进程原进程叫做父进程。子进程是父进程的一个复制品它从父进程继承整个进程的地址空间每个进程的地址空间是独立的包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号、当前工作目录、根目录、资源限制和控制终端等等子进程所独有的只有其进程号、资源使用和计时器等等。 补充说明 1、使用fork()的典型方法 使用fork()后用 if 判断返回值如果返回值大于0时就是在父进程中等于0就是在子进程中然后在各自的{ }里做操作。 2、fork()创建进程的方式 操作系统利用已有的进程来复制生成一个新的进程。因为重新创建进程的代价很大。 3、父进程与子进程的关系 子进程一旦建立子进程不再依赖于父进程。子进程有自己独立的PCB被内核同等调度。 4、fork()的返回值情况 fork函数调用一次会返回两次因为父子都有相同的一份代码进程同时被运行。fork函数在父进程中返回子进程的PID在子进程中返回0。 代码示例 p1 fork();if(p10) //子进程 {printf(hello word,pid %d \n,getpid()); }if(p10) //父进程 {printf(hello word,pid %d \n,getpid()); } 二、exec函数族在进程中启动另一个程序 函数原型 所需头文件         #include unistd.h 函数原型int execl(const char *path, const char *arg, ...);int execv(const char *path, char *const argv[]);int execvp(const char *file, char *const argv[]);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg,..., char * const envp[]);int execvpe(const char *file, char *const argv[],char *const envp[]);函数作用 execl函数族用于在进程中启动另一个可执行文件可以根据指定的文件名或者目录名找到可执行文件并用它来替代调用这个函数的进程的数据段、代码段和堆栈段在执行完之后原调用进程的内容除了进程号其他内容均被新进程替换。 补充说明 1、为什么需要excel函数族 fork()创建子进程后子进程可以独立执行一个新的程序比如可以在子进程 if(){ } 中写入新程序的代码。但是这样操作不够灵活因为它需要我们键入源代码这意味着我们必须知道源代码。对于一些没有源代码而只有编译后的可执行程序比如 ls -la 命令就不能使用这种方式。而使用exec族函数可以直接把一个编译好的可执行程序直接加载运行。 2、excel函数族的应用场景 1进程可以调用excel函数族中任意一个函数让自己重生。 2如果想进行多进程运行则父进程先调用fork()函数创建一个子进程在子进程里使用execl函数族中的任意一个函数来执行一个可执行程序。 代码示例 #include stdio.h #include unistd.h #include sys/types.h #include sys/wait.h #include stdlib.hint main(void) {pid_t pid -1;pid_t ret -1;int status -1;pid fork();if (pid 0) // 父进程{printf(parent, 子进程id %d.\n, pid);}else if (pid 0) // 子进程{//execl(/bin/ls, ls, -l, -a, NULL); // ls -l -a//char * const arg[] {ls, -l, -a, NULL};//execv(/bin/ls, arg);//execl(hello, aaa, bbb, NULL);//char * const arg[] {aaa, bbb, NULL};//execv(hello, arg);//execlp(ls, ls, -l, -a, NULL); char * const envp[] {AAaaaa, XXabcd, NULL};execle(hello, hello, -l, -a, NULL, envp);return 0;}else{perror(fork);return -1;}return 0; } 三、exit()函数终止进程 函数原型 所需头文件         #include stdlib.h 函数原型void exit(int status);返回值status是一个整型参数利用这个参数可以传递进程结束时的状态。一般来说0表示正常结束其他数字表示出现了错误进程非正常结束。在实际编码中可以利用wait()函数接收子进程的返回值从而针对不同的情况进行不同的处理。函数作用 exit()函数用来终止进程。当调用此函数时进程会无条件地停止剩余操作终止本进程的运行。 补充说明 无。 四、wait()函数父进程回收子进程 函数原型 所需头文件         #include sys/wait.h #include sys/types.h 函数原型 pid_t wait(int *status);参数说明这里的status是一个整型指针是该子进程退出时的状态。若status不为空则通过它可以获得子进程的结束状态。另外子进程的结束状态可由Linux中的一些特定的宏来检测。返回值成功返回已经结束的子进程的的进程号。失败则返回-1。函数作用 wait()函数主要用来回收子进程的资源同时获取被回收的子进程的进程号与退出状态。 补充说明 1wait()函数的返回值 成功则返回本次被回收的子进程的进程号。当前进程可能有多个子进程wait()函数的返回值可以用来判断哪一个子进程被回收了。 2wait()函数的工作原理 父进程调用wait函数后会进入阻塞。当子进程结束时系统向其父进程发送SIGCHILD信号父进程被SIGCHILD信号唤醒后会去回收僵尸子进程。若父进程没有任何子进程或者子进程已经结束则wait立即返回。父子进程之间是异步的SIGCHILD信号机制就是为了解决父子进程之间的异步通信问题让父进程及时地回收僵尸子进程。 3检测子进程退出状态的宏 WIFEXITED用来判断子进程是否正常终止return、exit、_exit退出WIFSIGNALED用来判断子进程是否非正常终止被信号所终止WEXITSTATUS用来得到正常终止情况下的进程返回值。 代码示例 #include stdio.h #include unistd.h #include sys/types.h #include sys/wait.h #include stdlib.hint main(void) {pid_t pid -1;pid_t ret -1;int status -1;pid fork();if (pid 0){// 父进程//sleep(1);printf(parent.\n);ret wait(status);printf(子进程已经被回收子进程pid %d.\n, ret);printf(子进程是否正常退出%d\n, WIFEXITED(status));printf(子进程是否非正常退出%d\n, WIFSIGNALED(status));printf(正常终止的终止值是%d.\n, WEXITSTATUS(status));}else if (pid 0){// 子进程printf(child pid %d.\n, getpid());return 51;//exit(0);}else{perror(fork);return -1;}return 0; } 五、getpid()函数获取当前进程的进程号 函数原型 所需头文件         #include sys/types.h #include unistd.h 函数原型 pid_t getpid(void);//获取当前进程的进程号 pid_t getppid(void);//获取当前进程的父进程的进程号 返回值返回值表示当前进程的进程号。函数作用 getpid()函数用来获取当前进程的进程号。 补充说明 在shell命令行中执行某个程序程序中获取当前进程的父进程的进程号会发现脚本进程bash就是当前进程的父进程。 xjhubuntu:~/iot/tmp$ ./a.out pid 4963 parent id 3009 //获取当前进程的父进程的进程号得到3009 xjhubuntu:~/iot/tmp$ psPID TTY TIME CMD3009 pts/0 00:00:01 bash4964 pts/0 00:00:00 ps //bash这个脚本进程的进程号是3009 xjhubuntu:~/iot/tmp$ cat test.c #includestdio.h #include sys/types.h #include unistd.h int main(int argc, char **argv) {pid_t p1-1,p2-2;p1getpid();p2getppid();printf(pid %d \n, p1);printf(parent id %d \n,p2);return 0; } xjhubuntu:~/iot/tmp$ 六、system()函数执行某命令 函数原型 所需头文件#include stdlib.h函数原型int system(const char *command);返回值        命令执行成功返回0执行失败返回-1。函数作用 执行 Shell 命令其中command为命令名。 补充说明 system函数会调用fork函数产生子进程由子进程来执行command命令命令执行完后随即返回原调用的进程。也就是说system()函数等价于fork()函数execl族其中一个函数。 代码示例 #include stdio.h #includestring.h #includestdlib.h int main(void) {char input[100];system(shutdown -h 1 );//这是linux系统下的一个关机命令printf(你的电脑将在一分钟后关机如果输入“我是猪”就会取消关机\n请输入: );scanf(%s,input);while(strcmp(input,我是猪)){printf(输入错误请输入“我是猪”来取消关机\n请输入: );scanf(%s,input);}system(shutdown -c);//取消关机命令return 0; }
http://www.pierceye.com/news/559708/

相关文章:

  • 网站开发接单网站站内推广方案
  • 网站建设网站建什么网站做二手货车
  • 如何做淘宝客的网站网站建设 源代码
  • 建设部网站 造价全世界足球排名前十位
  • 有机农产品网站开发方案新闻资讯平台有哪些
  • wap网站建设哪家好酒店网络推广怎么做
  • 专业做电脑系统下载网站聚名网域名怎么备案
  • 赚钱的网站做任务南通优化网站价格
  • 个人能进行网站开发孟村网 网站
  • 上海公司做网站的韩国购物网站模板
  • 快速建站教程网视频网站开发分析
  • 一个公司的网站怎么做的北京信息网
  • 撰写网站建设技术解决方案招聘平面设计
  • 网站的数据备份和恢复我想开网站
  • 网站建设情况报告范文wordpress用户注册提醒
  • 湛江商城网站制作公司闵行建设机械网站
  • 做网站seo赚钱吗平面广告设计作品集
  • 购物中心网站建设六安政务中心网站
  • 做网站公司赚钱吗?抖音小程序推广怎么挂才有收益
  • 滁州网站建设建设银行租房平台网站6
  • h5自适应网站模板下载阿里云域名注册好了怎么做网站
  • 德州做网站多少钱网站实现搜索功能
  • 帝国cms7.0网站搬家换域名换空间等安装教程万网云虚拟主机上传网站
  • 网站建设推广接单语wordpress 所有文章
  • 申请域名后怎么做网站网站建设与维护中国出版社
  • 洛阳做网站那家好课程网站建设开题报告
  • 到哪里建网站商务网站建设学期总结
  • 铜陵app网站做营销招聘网站开发公司需要投入什么资源
  • 建购物的网站需要多少钱wordpress不显示头像
  • 如何做一个个人网站长春网站建设wang