调用API的时候需小心处理fgets里面的'\n'换行符
#include "apue.h"
#include <sys/wait.h>
int main(void)
{
char buf[MAXLINE];
pid_t pid;
int status;
printf("%%");
while (fgets(buf, MAXLINE, stdin) != NULL)
{
//这里的目的是如果字符串结束字符\0前面,如果有个'\n'那么就替换为'\0'
//if (buf[strlen(buf)-1] == '\n')
// buf[strlen(buf)-1] = 0;
if ((pid = fork()) < 0)
err_sys("fork error");
else if (pid == 0)
{
//如果前面不对'\n'进行处理的话,这里会报错
//: No such file or directory
execlp(buf, buf, (char *)0);
err_ret("couldn't execute: %s", buf);
exit(127);
}
if ((pid = waitpid(pid, &status, 0))<0)
err_sys("waitpid error");
printf("%%");
}
exit(0);
}
//x /10cxb buf
调用API的时候需小心处理fgets里面的'\n'换行符
最新推荐文章于 2021-12-17 10:40:04 发布