这是一个模拟shell端的程序。使用了execvp,fork,wait,malloc,realloc以及strtok()函数。smsh.h1 char* next_cmd();2 char** splitline(char* );3 void freelist(char **);4 int exec...
分类:
系统相关 时间:
2014-10-31 23:31:23
阅读次数:
304
摘要:本文主要讲述如何在进程中运行新代码,以及exec系列函数的基本使用方法.用函数fork创建子进程后,如果希望在当前子进程中运行新的程序,可以调用exec函数执行另一个程序....
分类:
其他好文 时间:
2014-10-10 15:17:14
阅读次数:
207
??
1.exec族依赖的头文件
#include
extern char**environ;
2函数声明
//第一个参数:可执行程序所在的绝对位置
//第二个参数:可执行程序运行时所需的参数,这里是一个可变参数,每个参数之间用逗号分割
//参数结束时,最后一个参数是:NULL
int execl(constchar *path, const cha...
分类:
其他好文 时间:
2014-09-17 07:50:41
阅读次数:
321
用execvp实现时,运行adb,如果adb 服务没有启动,会启动adb服务,启动adb服务时,pipe返回的管道在读的时候堵塞了。查看了popen的源码,发现popen是用sh -c来执行的,避免了这个问题不知道sh -c做了些什么操作,使得popen可以避免这个问题代码如下: 1 #ifndef...
分类:
系统相关 时间:
2014-09-16 18:56:00
阅读次数:
296
在linux中我们可以很方便的使用system启动子程序,但是system有个不足就是它对子程序的掌控很弱,连返回数值都很难获取。
下面是一段使用execvp来调用子程序的示例代码,关于下面的代码有几点特殊说明:
1) folk(): 会从主程序中复制出一个新的程序,如果folk返回0就是子程序,否则那就是还是当前的程序。
2) wait() : 在主程序中你可以自己决定要等待子程序返回...
分类:
其他好文 时间:
2014-09-12 17:19:23
阅读次数:
254
shell是一个管理进程和运行进程的程序,下面我们就通过模拟一个shell程序这个实例来更好地认识认识在Linux/Unix系统中,进程的创建和结束,以及父子进程之间的一些关系。接下来先贴上源代码的中命令的读取部分:
numargs=0;
while(numargs<MAXARGS){
printf("Arg[%d]?",numargs);
if(fgets(argbuf,A...
分类:
其他好文 时间:
2014-09-11 22:27:32
阅读次数:
792
4.进程的相关处理system( )给当前进程输入系统shell命令import osif os.name == "nt": command = "dir"else: command = "ls -l" os.system(command) execvp 开始一个新进程, 以取代目前进程 impor...
分类:
编程语言 时间:
2014-09-10 10:46:00
阅读次数:
190
exec系列函数(execl、execlp、execle、execv、execvp)1带 p 的exec函数:execlp,execvp,表示第一个参数path不用输入完整路径,只有给出命令名即可,它会在环境变量PATH当中查找命令2 execl* 和execv*的区别是,前者一一列出参数,后者用指...
分类:
其他好文 时间:
2014-09-04 16:45:49
阅读次数:
212
实现一个自己的shell解释器,其原理比较简单,首先获取用户的输入,通过fork()函数获取两个进程(父子进程),子进程通过execvp()函数继续进行,此时父进程一直在等待子进程的结束,待都结束了就执行了一次shell解释。 1 /*================================...
分类:
系统相关 时间:
2014-08-22 02:42:25
阅读次数:
307
下面我们来看看一个进程如何来启动另一个程序的执行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。exec函数族当然不止一个,但它们大致相同,在 Linux中,它们分别是:execl,execlp,execle,execv,execve和execvp,下面我只...
分类:
其他好文 时间:
2014-08-08 21:21:46
阅读次数:
328