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

哈尔滨房地产网站建设在哪个平台做推广比较好

哈尔滨房地产网站建设,在哪个平台做推广比较好,西安php网站制作,不会php能做动态网站吗目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充: Linux🌷 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码,那么我们若想让该进程执行另一个“全新的程序”这 便要用…

目录

1. 程序替换的原因

2. 程序替换原理

3. 替换函数

4. 函数解释

5. 命名理解

6.简陋版shell的制作

补充:


 Linux🌷

1. 程序替换的原因

进程自创建后只能执行该进程对应的程序代码,那么我们若想让该进程执行另一个“全新的程序”这

便要用到程序替换技术。

2. 程序替换原理

fork 创建子进程后执行的是和父进程相同的程序 ( 但有可能执行不同的代码分支 ), 子进程往往要调
用一种 exec 函数以执行另一个程序。当进程调用一种exec 函数时 , 该进程的用户空间代码和数据完
全被新程序替换 , 从新程序的启动例程开始执行。调用exec 并不创建新进程 , 所以调用 exec 前后该进
程的 id 并未改变。
程序替换图解如下:

3. 替换函数

其实有六种以 exec 开头的函数 , 统称 exec 函数:都可以达到进程替换的目的。
#include <unistd.h>//path:路径+文件名
//file:文件名
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ...,char *const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[]);

4. 函数解释

  • 这些函数如果调用成功则加载新的程序从启动代码开始执行,不再返回;
  • 如果调用出错则返回-1;
  • 所以exec函数只有出错的返回值而没有成功的返回值。

5. 命名理解

这些函数原型看起来很容易混 , 但只要掌握了规律就很好记。
  • l(list) : 表示参数采用列表;
  • v(vector) : 参数用数组;
  • p(path) : p自动搜索环境变量PATH;
  • e(env) : 表示自己维护环境变量;

exec 调用举例如下 :
#include <unistd.h>int main()
{char *const argv[] = {"ps", "-ef", NULL};char *const envp[] = {"PATH=/bin:/usr/bin", "TERM=console", NULL};execl("/bin/ps", "ps", "-ef", NULL);// 带p的,可以使用环境变量PATH,无需写全路径execlp("ps", "ps", "-ef", NULL);// 带e的,需要自己组装环境变量execle("/bin/ps", "ps", "-ef", NULL, envp);execv("/bin/ps", argv);// 带p的,可以使用环境变量PATH,无需写全路径execvp("ps", argv);// 带e的,需要自己组装环境变量execve("/bin/ps", argv, envp);exit(0);
}
事实上 , 只有 execve 是真正的系统调用 , 其它五个函数最终都调用 execve, 所以 execve man 手册第
2 , 其它函数在man手册第 3 节。这些函数之间的关系如下图所示

6.简陋版shell的制作

#include <stdio.h>    #include <stdlib.h>    #include <string.h>    #include <sys/wait.h>    #define NUM 128    #define CMD_NUM 64    int main()    {    char command[NUM]={0};    for(;;)    {    printf("[renhaha@mini_shell mydir#]");    fflush(stdout);    fgets(command,NUM,stdin);    command[strlen(command)-1]='\0';    const char* sep=" ";    char* argv[CMD_NUM]={NULL};    argv[0]=strtok(command,sep);    int i=1;    while(argv[i]=strtok(NULL,sep))    {    i++;    }    if(strcmp(argv[0],"cd")==0)    {    if(argv[1]!=NULL)    chdir(argv[1]);    }                                                                                                                                                                                                         if(fork()==0)    {    execvp(argv[0],argv);    exit(1);    }    waitpid(-1,NULL,0);    }    return 0;    }    

补充:

makefile一次make多个文件

坚持打卡!😃

http://www.tj-hxxt.cn/news/84693.html

相关文章:

  • 西宁网站建设哪家强500强企业seo服务商
  • 行业数据分析网站百度企业推广
  • 郑州网站优化技巧一键优化清理手机
  • 紫金网站建设价格深圳搜索引擎优化推广
  • 免费网站的资源可以发公众号吗网络广告有哪些形式
  • 江苏两学一做网站搜索引擎优化策略有哪些
  • 专业网站建设哪里有英语培训机构前十名
  • 没有网站怎么做百度竞价网站推广专家
  • 旅游网站源码 wordpress模板 v1.0网页设计与制作考试试题及答案
  • 网站建设和网页建设的区别sq网站推广
  • 做百度药材种苗网站营销一体化平台
  • 网站无障碍的建设方面空缺自助优化排名工具
  • 郑州外贸网站推广seo广告投放
  • 郑州app网站开发百度人气榜
  • 网站建设后期服务收费标准朋友圈推广广告
  • 上海建筑设计有限公司网站seo入门基础教程书籍
  • 贵州毕节建设局网站官网网站排名软件
  • 云服务器做网站查收录网站
  • 网站打开速度慢是什么原因百度推广多少钱一个月
  • 长春火车站防疫政策石家庄百度seo代理
  • 廊坊高端品牌网站建设google官网入口注册
  • 二级域名网站建设规范app推广多少钱一单
  • 中国建设教育协会报名网站推广平台排行榜有哪些
  • 十堰网站建设公司百度投诉中心电话
  • 国外门户网站设计南京网络推广优化哪家好
  • 做网站创业今日新闻国家大事
  • 旅游网站建设的背景意义网站免费高清素材软件
  • 胶南网站制作网页设计培训教程
  • 网站标题栏软文营销步骤
  • 亚马逊官网首页长岭网站优化公司