LZ分明是不懂装懂嘛,错漏百出,还说那么多好像和似乎之类的词,明显就是滥竽充数
还有楼上,这么简单的问题怎么问得出来啊,如果会自动转那还写int main干嘛?动动脑子都想得到啊
能有能的理由,不能有不能的理由,理由是我想知道在这中间操作系统做了什么?编译器做了什么,难道你知道...就请说说吧
You have lots more to work on! Never give up!c language!
能有能的理由,不能有不能的理由,理由是我想知道在这中间操作系统做了什么?编译器做了什么,难道你知道...就请说说吧
不知你有没有念过本科,学没学一点操作系统原理的课,知不知道什么是进程。你喜欢谈shell我就跟你讨论下shell,下面是个简单的shell的实现:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
#include <unistd.h>
#define MAXLINE 256int main(void)
{
char buf[MAXLINE];
pid_t pid;
int status;printf(\"%%\"); //pintf prompt
while(fgets(buf,MAXLINE,stdin)!=NULL){
if(buf[strlen(buf)-1]=='\n')
buf[strlen(buf)-1]==0; //replace newline with nullif((pid=fork())<0){
printf(\"fork error\n\");
exit(1);
}
else if(pid==0){ //child process
execlp(buf,buf,(char*)0);
printf(\"couldn't execute: %s\",buf);
exit(127);
}if((pid=waitpid(pid,&status,0))<0){ //child process
printf(\"waitpid error\");
exit(1);
}
printf(\"%%\");
}
}
俺刚来,也没有什么NB的技术,只是见不得别人糊弄初学者。
你这贴也可谓是精华了.
在本贴指的是阁下.
if((pid=waitpid(pid,&status,0))<0){ //parent process
printf(\"waitpid error\");
exit(1);
}