linux学习:进程简单操作
2014-04-25 14:15
330 查看
1、fork创建子进程:
2、创建子进程的另一种方法execve,execve系统调用与fork的不同之处在于execve创建的进程替换了原来进程的上下文,即pid保持不变
(1)在Fedora 下创建exec测试项目,编译运行,并将可执行文件复制粘贴到Test的Debug下
![](http://img.blog.csdn.net/20140425144012796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcmN1YW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)利用execve编写系统调用函数,编译运行,但是在eclipes下看不出详细过程。
![](http://img.blog.csdn.net/20140425144219156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcmN1YW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(3)所以我们在命令行下进行,可以看到更加详细的过程。
/* ============================================================================ Name : Test.c Author : wangchuan Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <dirent.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/uio.h> #include <sys/wait.h> int main(void) { char buf[100]={0}; pid_t cld_pid; int fd; int status; if((fd = open("temp",O_CREAT | O_RDWR | O_TRUNC,0664)) == NULL) { perror("创建文件"); exit(1); } strcpy(buf,"父进程数据"); if((cld_pid = fork()) == 0){ strcpy(buf,"子进程数据"); puts("子进程正在工作:"); printf("子进程PID是%d\n",getpid()); printf("父进程PID是%d\n",getppid()); write(fd,buf,strlen(buf)); close(fd); exit(0); } else{ puts("父进程正在工作:"); printf("父进程PID是%d\n",getpid()); printf("子进程PID是%d\n",cld_pid); write(fd,buf,strlen(buf)); close(fd); } wait(&status);//等待子进程结束 return 0; }
2、创建子进程的另一种方法execve,execve系统调用与fork的不同之处在于execve创建的进程替换了原来进程的上下文,即pid保持不变
(1)在Fedora 下创建exec测试项目,编译运行,并将可执行文件复制粘贴到Test的Debug下
(2)利用execve编写系统调用函数,编译运行,但是在eclipes下看不出详细过程。
(3)所以我们在命令行下进行,可以看到更加详细的过程。
相关文章推荐
- Linux之ubuntu学习笔记(三):对文件和文件夹进行简单的操作
- IPython(jupyter)简单介绍和基本交互操作 - 千月的python linux 系统管理指南学习笔记(5)
- linux学习:sqlite3简单数据库查询操作
- Linux下的C语言编程——进程间通过signal函数通信简单操作
- Linux学习之简单操作
- Linux 基础目录 简单命令学习操作笔记
- Linux下的C语言编程——进程的简单操作
- Linux 命令 及 简单操作 学习
- Linux&c 文件操作,线程进程控制,网络编程,简单知识点梳理
- Linux学习笔记:简单了解用户,对用户的简单操作
- 学习Linux笔记(六)--进程操作
- Linux学习笔记:linux下的文件以及对文件的简单操作
- Linux操作简单学习(2)
- Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠
- Linux——进程管理学习简单笔记
- Linux之ubuntu学习笔记(七):操作进程
- Linux学习记录--文件系统简单操作
- Linux——进程管理简单学习笔记(二)
- Linux学习记录--文件系统简单操作
- Linux进程描述符——task_struct(初学者的简单学习)