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

汕头网址模板建站做网站.服务器怎么买

汕头网址模板建站,做网站.服务器怎么买,金坛城乡建设管理网站,成都网站建设s1emens本文目录 一、exec函数簇介绍二、exec函数簇 一、exec函数簇介绍 exec 函数族的作用是根据指定的文件名找到可执行文件#xff0c;并用它来取代调用进程的内容#xff0c;换句话说#xff0c;就是在调用进程内部执行一个可执行文件。 exec函数族的函数执行成功后不会返回并用它来取代调用进程的内容换句话说就是在调用进程内部执行一个可执行文件。 exec函数族的函数执行成功后不会返回因为调用进程的实体包括代码段数据段和堆栈等都已经被新的内容也就是新的进程信息会替换原进程的“用户区”的信息取代只留下进程ID等一些表面上的信息仍保持原样比如PID、PPID、进程组号等这些在内核区的PCB中的信息颇有些神似“三十六计中的“金蝉脱壳”。看上去还是旧的躯壳却已经注入了新的灵魂。只有调用失败了它们才会返回-1从原程序的调用点接着往下执行。 二、exec函数簇 int execl(const char *path,const char *arg,.../* (char *) NULL */); int execlp(const char *file,const char *arg,.../* (char *) NULL */); int execle(const char *path,const char *arg,.../* (char *) NULL ,char * const envp[] */;int execv(const char *path,char *const argv[]); int execvp(const char *file ,char *const argv[]); int execvp(const char *file,char *const argv[], char *const envp[]);//前面几个都是标准c库的函数下面这个是linux的函数一般来说就最上面两个用的最多。 int execve(const char *filename,char *const argv[],char *const envp[]); l:list参数地址列表以空指针结尾。 v:vector存有各参数地址的指针数组的地址。 p:path按PATH环境变量指定的目录搜索可执行文件。 e:environment存有环境变量字符串地址的指针数组地址。 输入man 3 exec查看标准C库的文档解释 首先在某个文件夹下创建hello.c文件代码如下 #include stdio.hint main() { printf(hello, world\n);return 0; }然后在同级文件夹下创建execl.c文件然后通过gcc exec.c -o exec进行编译。 /*#includeunistd.hint execl(const char *path, const char *arg, ...);参数-path需要指定的执行的文件路径或者相对路径的名称比如a.out 或者/home/linux/a.out执行a.out的时候可以传递一些参数所以后面都是可变参数-arg:是执行可执行文件需要的参数列表第一个参数一般没有什么作用为了方便一般写的是程序的名称、从第二个参数开始往后就是程序执行所需要的参数。参数最后需要以NULL结束哨兵。返回值只有出错的时候才会有返回值返回-1并且设置errno。如果调用成功没有返回值。为什么没有返回值因为用户区的内容已经被替换了。 */#include unistd.h #include stdio.h #includesys/types.hint main() {// 创建一个子进程在子进程中执行exec函数族中的函数pid_t pid fork();if(pid 0) {// 父进程printf(我是父进程, pid : %d\n,getpid());sleep(1);}else if(pid 0) {// 子进程execl(hello,hello,NULL);//也可以试着跑一下系统的shell命令也就是ps aux查看进程的命令ps是可执行文件aux是参数。//execl(/bin/ps, ps, aux, NULL); }for(int i 0; i 3; i) {printf(i %d, pid %d\n, i, getpid());}return 0; }运行./exec会发现输出了hello,world! 并且只有父进程在输出for循环子进程因为跳出实现另一个进程不会再往下执行了。 下面的execlp函数则是到环境变量输入env 即可查看环境变量可以看到ps的环境变量是/usr/local/bin所以下面的代码是可以成功找到ps并且执行的。中去找可执行文件所以不需要路径。 /* #include unistd.hint execlp(const char *file, const char *arg, ... );- 会到环境变量中查找指定的可执行文件如果找到了就执行找不到就执行不成功。- 参数- file:需要执行的可执行文件的文件名a.outps- arg:是执行可执行文件所需要的参数列表第一个参数一般没有什么作用为了方便一般写的是执行的程序的名称从第二个参数开始往后就是程序执行所需要的的参数列表。参数最后需要以NULL结束哨兵- 返回值只有当调用失败才会有返回值返回-1并且设置errno如果调用成功没有返回值。int execv(const char *path, char *const argv[]);argv是需要的参数的一个字符串数组char * argv[] {ps, aux, NULL};execv(/bin/ps, argv);*/ #include unistd.h #include stdio.hint main() {// 创建一个子进程在子进程中执行exec函数族中的函数pid_t pid fork();if(pid 0) {// 父进程printf(i am parent process, pid : %d\n,getpid());sleep(1);}else if(pid 0) {// 子进程execlp(ps, ps, aux, NULL);printf(i am child process, pid : %d\n, getpid());}for(int i 0; i 3; i) {printf(i %d, pid %d\n, i, getpid());}return 0; }
http://www.w-s-a.com/news/263181/

相关文章:

  • 做视频必须知道的一些网站wordpress 标签鼠标滑过_弹出的title 代码美化
  • 怎么做室内设计公司网站电商运营培训视频课程
  • 昆明网站策划天津市建筑信息平台
  • 三亚放心游app官方网站wordpress 个人主题
  • 做简单的网站备案平台新增网站
  • 中国建设网站银行网络营销推广方案整合
  • 网站域名列表dede网站白屏
  • 站长工具一区品牌建设卓有成效
  • 电子商务网站建设案例wordpress批量编辑
  • 想代理个网站建设平台100个最佳市场营销案例
  • 钟表东莞网站建设石家庄做网站时光
  • 织梦 图片网站源码成都建设工程安监局网站
  • 做兼职的网站策划书湖北省建设工程造价信息网
  • 企业网站网址长期做网站应该购买稳定的空间
  • 网站静态化设计html5手机网站制作
  • 深圳最简单的网站建设家居网站建设全网营销
  • 如何取消网站备案佛山网站优化公司
  • 网站开发 成都广水网站设计
  • 音乐网站建设目标合同管理系统
  • jq网站特效插件如何知道网站是否被k
  • 自己的网站怎么接广告网站搭建收费
  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢
  • 做新闻类网站还有市场吗东莞黄页网广告
  • 地方网站做外卖专业做互联网招聘的网站有哪些