c语言中用fork()和excel()实现控制台的指令
发布网友
发布时间:2022-05-30 17:52
我来回答
共1个回答
热心网友
时间:2023-10-24 15:11
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#define BUFFERSIZE 40
int main()
{
char request,ch;
char leftover[BUFFERSIZE];
int pid, status;
printf("Please Enter Command:\n");
scanf("%c", &request);
ch = getchar();
while(request != 'Q')
{
fgets(leftover, sizeof(leftover), stdin);
pid = fork();
if(pid > 0)
{
wait(&status);
printf("Please Enter Command:\n");
scanf("%c", &request);
ch = getchar();
}
else if (pid == 0)
{
if (execl("/bin/sh", "sh", "-c",leftover,(char *)0) == -1)
{
printf("%s",strerror(errno));
exit(-1);
}
exit(-1);
}
else
exit(-1);
}
printf("GoodBye!\n");
return 0;
}
在linux下vi编辑器下编写代码,gcc编译运行测试过,希望对你有帮助。上面的编程主要是利用了进程编程的一些知识,推荐看看《Unix环境高级编程》(APUE),相信会对编程有很大的提高,大家共同进步。