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

wordpress 子网站重命名购物网站模板下载

wordpress 子网站重命名,购物网站模板下载,织梦旅游网站模板,做网站销售的换工作目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充#xff1a; Linux#x1f337; 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码#xff0c;那么我们若想让该进程执行另一个“全新的程序”这 便要用… 目录 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自动搜索环境变量PATHe(env) : 表示自己维护环境变量 exec 调用举例如下 : #include unistd.hint main() {char *const argv[] {ps, -ef, NULL};char *const envp[] {PATH/bin:/usr/bin, TERMconsole, 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([renhahamini_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 i1; 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.w-s-a.com/news/840854/

相关文章:

  • 教育培训的网站建设湖南网站建设小公司
  • 福建南平网站建设创意交易平台网
  • 做直播网站要哪些技术内容营销理论
  • 价格划算的网站开发怎么找有赞做网站
  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网
  • 网站设计 知识产权湖北网站建设xiduyun
  • 猫咪网站模版下载中国风 古典 红色 网站源代码
  • 个人网站备案模板制作网站首页
  • 潍坊正规建设网站网站建设设计作业
  • 推荐一下网站谢谢辽宁住房城乡建设部官方网站
  • 网站文件大小英选 网站开发
  • 济南建网站哪家好wordpress编辑器排行
  • 在福州做搬家网站多少钱画册设计网站有哪些
  • 如何让别人浏览我做的网站哪些方法可以建设网站
  • 网站建设与管理网络推广的优点
  • 美食网站的设计与制作做网站的电销话术
  • 中国档案网站建设现状研究陕西建设厅执业资格注册中心网站
  • 网站建设的内容管理怎么用ps切片在dw里做网站