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

大型建设网站制作做 爱 网站小视频在线观看

大型建设网站制作,做 爱 网站小视频在线观看,wordpress 如何添加备案号,网站后台如何做笔试至少3次见到这个题#xff0c;都是瞎编的#xff0c;今天群里有人问#xff0c;然后有人放出了这个地址#xff1a;http://coolshell.cn/articles/7965.html#xff0c;让我恍然大明白#xff0c;豁然好脾气。 感谢这位陈皓同学#xff08;名字很熟#xff0c;不记…笔试至少3次见到这个题都是瞎编的今天群里有人问然后有人放出了这个地址http://coolshell.cn/articles/7965.html让我恍然大明白豁然好脾气。 感谢这位陈皓同学名字很熟不记得什么地方见过好像某本书上看见过。下面全文转一下 ***************下面全是转的我是分隔线*************** 前两天有人问了个关于Unix的fork()系统调用的面试题这个题正好是我大约十年前找工作时某公司问我的一个题我觉得比较有趣写篇文章与大家分享一下。这个题是这样的 题目请问下面的程序一共输出多少个“-” 1 #include stdio.h 2 #include sys/types.h 3 #include unistd.h 4 int main(void) 5 {6 int i;7 for(i0; i2; i)8 {9 fork(); 10 printf(-); 11 } 12 return 0; 13 } 如果你对fork()的机制比较熟悉的话这个题并不难输出应该是6个“-”但是实际上这个程序会很tricky地输出8个“-”。 要讲清这个题我们首先需要知道fork()系统调用的特性 fork()系统调用是Unix下以自身进程创建子进程的系统调用一次调用两次返回如果返回是0则是子进程如果返回值0则是父进程返回值是子进程的pid这是众为周知的。还有一个很重要的东西是在fork()的调用处整个父进程空间会原模原样地复制到子进程中包括指令变量值程序调用栈环境变量缓冲区等等。所以上面的那个程序为什么会输入8个“-”这是因为printf(“-”);语句有buffer所以对于上述程序printf(“-”);把“-”放到了缓存中并没有真正的输出参看《C语言的迷题》中的第一题在fork的时候缓存被复制到了子进程空间所以就多了两个就成了8个而不是6个。 另外多说一下我们知道Unix下的设备有“块设备”和“字符设备”的概念所谓块设备就是以一块一块的数据存取的设备字符设备是一次存取一个字符的设备。磁盘、内存都是块设备字符设备如键盘和串口。块设备一般都有缓存而字符设备一般都没有缓存。 对于上面的问题我们如果修改一下上面的printf的那条语句为 1 printf(-\n); 或是 1 printf(-); 2 fflush(stdout); 就没有问题了就是6个“-”了因为程序遇到“\n”或是EOF或是缓中区满或是文件描述符关闭或是主动flush或是程序退出就会把数据刷出缓冲区。需要注意的是标准输出是行缓冲所以遇到“\n”的时候会刷出缓冲区但对于磁盘这个块设备来说“\n”并不会引起缓冲区刷出的动作那是全缓冲你可以使用setvbuf来设置缓冲区大小或是用fflush刷缓存。 我估计有些朋友可能对于fork()还不是很了解那么我们把上面的程序改成下面这样 1 #include stdio.h 2 #include sys/types.h 3 #include unistd.h4 int main(void) 5 {6 int i;7 for(i0; i2; i)8 {9 fork(); //注意下面的printf有“\n” 10 printf(ppid%d, pid%d, i%d \n, getppid(), getpid(), i); 11 } 12 sleep(10); //让进程停留十秒这样我们可以用pstree查看一下进程树 13 return 0; 14 } 于是上面这段程序会输出下面的结果注编译出的可执行的程序名为fork ppid8858, pid8518, i0 ppid8858, pid8518, i1 ppid8518, pid8519, i0 ppid8518, pid8519, i1 ppid8518, pid8520, i1 ppid8519, pid8521, i1 $ pstree -p | grep fork |-bash(8858)--fork(8518)--fork(8519)---fork(8521) | | -fork(8520) 面对这样的图你可能还是看不懂没事我好事做到底画个图给你看看 注意上图中的我用了几个色彩相同颜色的是同一个进程。于是我们的pstree的图示就可以成为下面这个样子下图中的颜色与上图对应 这样对于printf(“-”);这个语句我们就可以很清楚的知道哪个子进程复制了父进程标准输出缓中区里的的内容而导致了多次输出了。如下图所示就是我阴影并双边框了那两个子进程 现在你明白了吧。另对于图中的我本人拙劣的配色请见谅! 全文完 转载本站文章请注明作者和出处 酷壳 – CoolShell.cn 请勿用于任何商业用途 ———————— 感谢 42qu.com 为本站提供 VPS ————————转载于:https://www.cnblogs.com/anpengapple/archive/2012/10/13/2722827.html
http://www.huolong8.cn/news/60020/

相关文章:

  • 做海报推荐网站开发区官网
  • 黑河做网站的中铁建设集团有限公司是央企吗
  • 关于网页设计搜索引擎排名公司网站关键词优化
  • 建设网站注意实现手机网站开发成为小程序
  • 做网站有必要要源码吗百度做网站联系电话
  • 网站建设公司是怎么找客户黑科技广告推广神器
  • 网站主机名是什么网站播放图片多大合适
  • 沈阳工程建设信息网站谷歌广告优化师
  • 做网站贵吗网站的中英文翻译是怎么做的
  • 网站开发流程包括需求分析wordpress themes
  • 怎么制作个人求职网站全屋整装装修效果
  • 我要建个网站wordpress微信服务号
  • 大鹏网站建设建站好不好莱芜都市网房产频道
  • 怀来网站建设wordpress免费商城模板下载
  • qq发网站链接怎么做可以做微课ppt模板 网站有哪些内容
  • 白山网站制作福州百度网站快速优化
  • 医药公司网站建设方案网站 架构设计
  • 网站推广费用ihanshi沈阳网站制作定制策划
  • 杭州网站建站公司贵州省建设局网站
  • 中山做百度网站的公司名称抖音品牌推广方案
  • 商务网站建设毕业设计模板下载武义县网站建设
  • 网站注册要多少钱没有内容的网站应该怎么做
  • 企业做微网站镜像网站如何做排名
  • 上海高端模板建站魏县专业做网站
  • 苏州网站定制公司哪家好wordpress插件的页面文件
  • 功能性的网站设计制作做ps兼职的网站
  • php网站配置说明兰州网站建设网站建设
  • 可以做伦铜的网站wordpress自适应相册
  • 网站建设作品图片app生成器手机版
  • 网站建设培训公司9377传奇