strtok()やstring.hからの何かを使用せずに、スペースで文字列を手動で解析しようとしています。これは正しいアプローチのように見えますか?これを試してみると、文字列の終わりを過ぎてスキップし続けます。
char cmd[1024];
int ret = read(STDIN, cmd, 1023);
cmd[ret-1] = '\0';
char * args[128];
int length = 0;
char * startptr = cmd;
char * endptr = cmd;
while(1){
if(*startptr == '\n' || *startptr == '\0'){
break;
}
if(*startptr == ' '){
startptr ++;
endptr ++;
continue;
}
// startptr is placed
if(*endptr != '\0' || *endptr != '\n' || *endptr != ' '){
endptr ++;
continue;
}
// both pointers placed
char * i = startptr;
for(i = startptr; i != endptr; i++){
args[length][i-startptr] = *i;
}
length ++;
startptr = endptr;
if(*endptr == '\0' || *endptr == '\n'){
break;
}
}