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

网站建设的指标金融网站html5模板

网站建设的指标,金融网站html5模板,温州seo网站推广,网络推广推广公司文章目录 进程替换是什么#xff1f;进程替换怎么用#xff1f;不创建子进程时使用 进程替换是什么#xff1f; 我们知道fork()之后#xff0c;父子进程各自执行父进程的一部分代码#xff0c;如果子进程就想执行一个全新的程序呢#xff1f; 以前#xff1a;父子代码… 文章目录 进程替换是什么进程替换怎么用不创建子进程时使用 进程替换是什么 我们知道fork()之后父子进程各自执行父进程的一部分代码如果子进程就想执行一个全新的程序呢 以前父子代码共享数据写时拷贝各自一份 如果子进程想要有自己的代码呢 我们可以用进程的程序替换来完成以上功能。 程序替换是通过特定的接口找到磁盘上的一个权限程序代码数据把它加载到调用进程的物理内存中。 原理 所以想进行程序替换我们只要将新的磁盘上的程序加载到内存并和当前的进程页表重新建立映射关系即可。 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 所以进程替换没有创建新的进程因为OS并没有为该程序创建新的task_struct用的全部都是之前程序的task_struct。 进程替换怎么用 不创建子进程时使用 函数介绍 可变参数列表可以传入不定个数个参数。 我们在命令行上怎么执行的在这里就一个一个怎么填。 例如ls -a -l 就直接填入ls,‘’-a’,“-l”。 代码演示 首先要知道ls的路径 #include stdio.h #include unistd.h int main() { printf(当前进程的开始代码\n); execl(/usr/bin/ls,ls,NULL); printf(当前进程的结束代码\n); return 0; } 运行结果对比 我们看到确实可以查出来 再多传几个查看一下 #include stdio.h #include unistd.h int main() { printf(当前进程的开始代码\n); //execl(/usr/bin/ls,ls,NULL); execl(/usr/bin/ls,ls,-a,-l,NULL); printf(当前进程的结束代码\n); return 0; }运行结果 系统自身运行结果 这里大家肯会有个一行为什么最后要传一个NULL因为execl函数是可变参数列表所以我们要传一个NULL来告知它参数已经传递完毕。 这里大家肯会有疑惑为什么系统使用ls时查出来的信息是带颜色的而自己查出来时并没有。 其实是系统起了别名 我们知道多传递一个–colorauto参数列表即可 #include stdio.h #include unistd.h int main() { printf(当前进程的开始代码\n); //execl(/usr/bin/ls,ls,NULL); execl(/usr/bin/ls,ls,-a,-l,--colorauto,NULL); printf(当前进程的结束代码\n); return 0; }这里我就有一个问题了我们代码后面不是有printf吗为什么没有打印呢 因为execl是程序替换调用该函数成之后会将当前进程的所有代码和数据都进行替换包括已经执行的代码和未执行的代码。 所以一旦调用成功execl后续所有代码全部不会执行 测试一下如果调用失败我们后续代码会执行吗 我们传入一个根本不存在的执行试一下 #include stdio.h #include unistd.h int main() { printf(当前进程的开始代码\n); //execl(/usr/bin/ls,ls,NULL); execl(/usr/bin/lss,lss,-a,-l,--colorauto,NULL); printf(当前进程的结束代码\n); return 0; } 我们这里看到execl函数调用失败之后确实后续代码成功的输出并没有被替换。 **execl为什么调用成功了为什么不用它的返回值呢**因为根本就不需要返回值毫无用处execl调用成功是会把自己都替换掉。 #include stdio.h #include unistd.h #include stdlib.h int main() { printf(当前进程的开始代码\n); //execl(/usr/bin/ls,ls,NULL); execl(/usr/bin/ls,ls,-a,-l,--colorauto,NULL); exit(1); printf(当前进程的结束代码\n); return 0; }我们可以看到这里的退出码是0而不是1.
http://wiki.neutronadmin.com/news/148959/

相关文章:

  • 南昌市建设局网站用wordpress还是用框架
  • 公司装修款怎么入账汕头seo排名收费
  • 哪个网站建站好美食分享网站设计
  • dede网站本地访问速度慢什么是关键词
  • 网站建设运营创意字体logo设计免费
  • 免费网站制作在线软件开发工具免费下载
  • 给别的公司提供网站建设免费的虚拟电脑app
  • 站长之家域名查询排行学做网站论坛 可以吗
  • 网站布局方法分类企业网站主页设计模板
  • 音乐网站建设规划网页设计课程的总结
  • 彩票做的最好是个网站好乐清网
  • 目前网站在初级建设阶段_需要大量数据丰富包装盒网站模板
  • 网站设计seo九一制作厂网站app
  • seo如何优化网站推广农林科技公司网站模板
  • 龙岩论坛石家庄seo代理
  • 大连做网站科技有限公司哪个公司做网站最好深圳
  • 网站权重与排名浅谈中国比较有名的产品设计公司
  • 云南省建设培训网站企业宣传片制作软件
  • 建站seo推广复杂大型网站建设成本
  • 藁城手机网站建设热门的网站模板
  • 法律咨询东莞网站建设简单建站的网站
  • 免费推广网站大全音乐网站制作源代码
  • 网站 内部搜索引擎wordpress高级教程 pdf
  • 网站程序合同电商平台网址
  • 昆明建设网站哪家好招聘网站开发源码
  • 湖南城乡住房建设厅网站重庆seo排名收费
  • 网站换ip影响 百度app首页设计效果图
  • wordpress 安卓主题下载企业网站建设中图片优化的方法
  • 谈谈你对企业网站的页面设计酒吧dj做歌网站
  • 怎么建立微网站?卫计局网站建设信息公开总结