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

大淘客怎样做网站微信公众上传wordpress

大淘客怎样做网站,微信公众上传wordpress,怎么查看网站虚拟空间,网络营销方式案例目录 前言#xff1a; 进程的创建 前言#xff1a; 继上文介绍了着重介绍了进程的内部属性#xff0c;以及在操作系统层面进程如何被组织起来的#xff0c;如何调用系统接口#xff0c;有关task_struct#xff0c;进程的部分理解等#xff0c;今天#xff0c;我们就…目录 前言 进程的创建 前言 继上文介绍了着重介绍了进程的内部属性以及在操作系统层面进程如何被组织起来的如何调用系统接口有关task_struct进程的部分理解等今天我们就从进程的相关属性入手 进程的创建 承接上文。 上文介绍了进程的创建方式是调用系统接口fork所以有的时候对子进程理解不深的人会写出如下代码 while(1) {printf(aaa\n);fork();printf(...\n); } 代码本身是没有什么错误的但是打印出来的时候会发现打印出来并不是一个父进程一个子进程的打印因为子进程会执行父进程后面的代码所以也会执行这个死循环从而导致子进程创建子进程变成了指数级别的增长所以打印第二个printf是1 2 4 8 的打印容易让人摸不着头脑。 下一个场景我们写了如下代码 printf(I am a child process,my pid is %d\n,getpid()); printf(I am a parent process,my pid is %d\n,getppid()); 当我们不管怎么运行发现pid是会改变的这很正常但是为什么ppid是不变的呢这是正常的吗? 当我们使用指令ps -xaj打开了任务管理器的界面我们就会发现2878的进程是bash不一定2878就是bash也可能会有变化参照./test每个进程的pid都是会变化的 那么什么是bash呢  当我们运行: 就会有bash提示你说./是个目录无法运行。 其实bash就是命令行解释器我们刚才运行的./test就像是一个公司的实习生而已它呢实际上就是公司的boss掌管所有的实习生子进程。 提问我们为什么创建子进程呢 根据前面的代码我们知道子进程会继承父进程后面的所有代码但是我们创建子进程就是为了执行后面的代码吗?父进程也可以执行啊为什么要创建呢这时候前面埋下的伏笔就起作用了这里有个很让人迷惑的问题一个函数的返回值可以返回几次呢 欸大多数初学者可能都会回答一次但是fork的奇异之处就在这里 当我们man fork之后在手册里面查询返回值的时候返回值的描述是这样的 On success, the PID of the child process is returned in the parent, and 0 is returned in the child.  On failure, -1 is returned in the parent, no child process is created, and errno is ... 翻译过来就是成功创建子进程那么子进程的Pid就会返回给父进程0返回给子进程失败了就是返回-1给父进程也就是说成功了会有两个返回值我们就可以写如下代码 7 pid_t id fork();8 if(id 0)9 {10 printf(hehehe\n);11 }12 else 13 {14 printf(hahahha\n);15 }16 最后的打印结果是 按照以前C语言的逻辑是只会打印一个的这里就有点颠覆了代码三观了~ 但是奇怪了明明变量只有一个id啊为什么会有两份 实际上在fork的时候fork的实现部分return id是代码吧在fork的函数体内已经创建了子进程所以会返回两份id因为父进程也会进入fork函数那么有了两份id至于为什么会有“两份”埋个伏笔~ 所以得出结论子进程的创建是用来干其他事情的不是用来干和父进程一样的事情的。 那么我们如何创建指定量的进程呢 如果我们采用最开始的指数级别的来创建肯定是不好控制的那么我们就可以使用fork的返回值来帮助我们创建指定数量的进程。因为创建成功了会返回0给子进程那么我们可以让这个子进程进入到一个函数体里面再也出不来也就不会导致子进程创建子进程的情况了 5 void Run()6 {7 while(1)8 {9 printf(My pid is %d,ppid is %d\n,getpid(),getppid());10 sleep(1);11 }12 }13 14 int main()15 {16 for(int i 0; i 5; i)17 {18 pid_t pid fork();19 if(pid 0)20 {21 Run();22 }23 }24 while(1) 25 {26 printf(I am a parent,my pid is %d,ppid is %d\n,getpid(),getppid());27 sleep(1);28 }return 0;}咱们先来看结果。 不出意外的我们创建了6个进程主函数是第一个进程后面通过for循环创建了5个子进程并且5个子进程之间是没有关联的并且通过它们各自的pid我们发现5个子进程的ppid都是父进程的12607大胆预测的父进程的ppid的4335是bash进程这点我们就不验证了。 好了进程的创建我们已经基本熟络了那么进程的大部分信息我们怎么去看呢 首先我们引入一个问题指令是进程吧那么我们运行了指令之后指令的工作路径在哪里呢可能这个问题有点让人摸不着头脑我们拿文件举例子如果我们写了如下代码 int main() {chdir(/home/whb/111);FILE *fp fopen(log.txt, w);(void)fp; // ingore warningfclose(fp);while(1){printf(I am a process, pid: %d\n, getpid());sleep(1);}return 0; } 那么log.txt文件默认会创建在哪里呢是当前代码的工作路径吧 在VS里面就像是这样的那么同理Linux中的进程工作的时候也应该有自己的工作路径我们从哪里去看工作路径呢 在根目录的proc里面proc是process的缩写。 此时我们就可以看到proc里面的信息了如果我们要具体到某一个的进程信息我们只需要 同时运行其他两条指令我们在27847父进程里面就可以注意如下事项 本文首先注意两个一个是cwd一个是execwd是current woek directory当前工作目录的意思exe就好理解了记录对应进程中可执行文件的路径。 而当你对某一个进程进行cd的时候发现是可以cd进去的说明进程本质就是一个一个的目录目录里面记录了进程的所有信息此时对于Linux中一切皆文件的理解又更深了一层 感谢阅读
http://www.hkea.cn/news/14256503/

相关文章:

  • 作文素材网站郑州seo排名扣费
  • 嘉纪商正网站建设公司2022年新闻大事
  • 公司建网站一般多少钱企业商务网站建设论文
  • 网站建设基本技术app设计界面
  • 公章在线制作网站做不了wordpress 视频页面
  • 自主建站是什么意思济南房产网安居客
  • 河南城市建设招标类网站搜索引擎中 哪些网站可以获得更好的排名
  • 山东做网站公司有哪些室内设计效果图招聘
  • 成都制作网站的公司简介两学一做考学网站
  • 做网站要多大空间做网站的找哪个
  • wordpress国内网站吗正规的手机网站建设
  • 贵阳网站建设搜王道下拉如何提高网页设计
  • 网站开发PRD做模板网站价格
  • 做网站推广的需要了解哪些知识南宁在那里推广网站
  • 怎么做一个门户网站温州网站建设seo
  • 网站制作维护费 归属泉州网络公司都
  • 男装网站模板演示如何提取网页中的视频
  • 织梦教育网站开发电子商务的建站流程
  • 网站开发的目的意义特色创新开发工具有哪些
  • 建设一个网站需要贵阳经济技术开发区网站
  • 大网站开发费用网站优化要怎么做
  • 机械类网站建设网站建设的相关技术方案
  • 合肥最好的网站建设公司排名物联网的网络架构
  • 网站建设基本知识代码做网站攻击
  • 四川省铁路建设有限公司网站广州互联网营销师
  • 安徽网站建设获客企业wordpress调用产品图片
  • 高效网站建设与维护岗位职责快手网页版
  • 广西建设职业技术学院网站wordpress 设计
  • 深圳网站公司招聘信息新开传奇网站排行
  • jsp酒店预订网站开发手机能开wordpress吗