我正在尝试创建一个包含解析信息的结构,并且我想创建一个返回填充数据的结构的方法。这是我到目前为止所拥有的,但我收到一个错误提示 Parser.c:3: error :在 'parseString' 之前应有 '='、','、';'、'asm' 或 '<strong>attribute'</p>
解析器.h
#include <stdio.h>
#include <string.h>
typedef struct
{
char* myArguments;
char* myProgramName;
int myNumArguments;
}ParserData;
ParserData parseString(int argc, char** argv);
解析器.c
#include "Parser.h"
ParserData parseString(int argc, char **argv)
{
ParserData tempData;
tempData.myNumArguments = argc;
return tempData;
}
米什.h
#include "Parser.h"
ParserData myParserData;
米什.c
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
#include "Mish.h"
#define MAXLINE 1024
int main(int argc, char *argv[], char **environ)
{
char buf[MAXLINE];
pid_t pid;
int status;
printf("mish>"); //Print shell
myParserData = parseString(argc, argv);
while (fgets(buf, MAXLINE, stdin) != NULL)
{
buf[strlen(buf) - 1] = 0; /* replace newline with null */
if ( (pid = fork()) < 0)
{
printf("fork error");
}
else if (pid == 0) /* child */
{
execlp(buf, argv[1], (char *) 0);
printf("couldn't execute: %s", buf);
return(127);
}
/* parent */
if ( (pid = waitpid(pid, &status, 0)) < 0)
{
printf("waitpid error");
printf("%% ");
}
}
return(0);
}