linux bash psh,psh2.c · 20145210姚思羽/linux20145210 - Gitee.com

#include

#include

#include

#include

#include

#include

#include

#defineMAXARGS20

#defineARGLEN100

char *makestring( char *buf )

{

char*cp;

buf[strlen(buf)-1] = '\0';

cp = malloc( strlen(buf)+1 );

if ( cp == NULL ){

fprintf(stderr,"no memory\n");

exit(1);

}

strcpy(cp, buf);

return cp;

}

void execute( char *arglist[] )

{

intpid,exitstatus;

pid = fork();

switch( pid ){

case -1:

perror("fork failed");

exit(1);

case 0:

execvp(arglist[0], arglist);

perror("execvp failed");

exit(1);

default:

while( wait(&exitstatus) != pid )

;

printf("child exited with status %d,%d\n",

exitstatus>>8, exitstatus&0377);

}

}

int main()

{

char*arglist[MAXARGS+1];

intnumargs;

charargbuf[ARGLEN];

numargs = 0;

while ( numargs < MAXARGS )

{

printf("Arg[%d]? ", numargs);

if ( fgets(argbuf, ARGLEN, stdin) && *argbuf != '\n' )

arglist[numargs++] = makestring(argbuf);

else

{

if ( numargs > 0 ){

arglist[numargs]=NULL;

execute( arglist );

numargs = 0;

}

}

}

return 0;

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值