下面我有一个令牌工具,我试图变成一个shell程序。我刚开始所以我知道该程序没有设置为采取任何shell命令,但我只是打印出当前工作目录的问题。我将在下面显示我的代码:
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main()
{
pid_t pid;
char cwd[1000];
if (getcwd, sizeof(cwd) != NULL)
{
fprintf(stdout, "Current working dir: %s\n");
return 0;
}
printf("Please enter a string\n");
int ch = fgetc(stdin);
while (ch != EOF)
{
pid = fork();
if (pid == 0)
{
printf("Child Working");
}
else
printf("Child not working");
while (isspace(ch))
{
// If only 1 line of input allowed, then add
if (ch == '\n') return 0;;
ch = fgetc(stdin);
}
if (ch != EOF)
{
do
{
fputc(ch, stdout);
ch = fgetc(stdin);
}
while (ch != EOF && !isspace(ch));
fputc('\n', stdout);
}
}
return 0;
}
到目前为止我得到的输出是在下面的屏幕截图中:
答案 0 :(得分:1)
变化
if (getcwd, sizeof(cwd) != NULL)
为:
if (getcwd(cwd, sizeof(cwd)) != NULL)
和
fprintf(stdout, "Current working dir: %s\n");
为:
printf("Current working dir: %s\n", cwd);