打印出当前的工作目录

时间:2014-03-01 22:54:45

标签: c shell parsing command-line

下面我有一个令牌工具,我试图变成一个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;
}

到目前为止我得到的输出是在下面的屏幕截图中:

enter image description here

1 个答案:

答案 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);