私は最近、同様の機能を持つプログラムを作成しました:
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#define BUFFERSIZE 1024
#define LINEMAXSIZE 2000
void main(int argvc,char** argv)
{
int filedesc=open(argv[1],O_RDONLY);
char buffer[BUFFERSIZE];
char expression[LINEMAXSIZE]; //the line
int exprindex=0; //line index
int count=read(filedesc,buffer,sizeof(buffer));//read bytes
while(count!=EOF)
{
int i=0;
while(i<count)
{
char c=buffer[i];
if(c=='\n')
{
expression[exprindex++]='\0';
char* line=strdup(expression);//create a new instance of the string
system(line); //execute the line
exprindex=0;//set line index to 0
}
else
{
expression[exprindex++]=c;
if(exprindex>=LINEMAXSIZE)
{
printf("Line Max length reached\n");
}
}
i++;
}
count=read(filedesc,buffer,sizeof(buffer));
}
}
は、ここにコードを追加します。 – shift66
これは私が行った場所です。 – madCode