I've got a very simple program here for which I can't find a reasonable explanation. I need a program which generates a static index for an FTP server... generally not much of a problem... I just use system("cat script|ftp
ftp://userass@server.com/path/>output.file"); with "script" containing nothing more then a simple "ls" and parse the resulting output.log.
Problem is, that requires me to re-login for each directory which takes some time, so I want to keep ftp running all the time and just issue some commands to it
Code:
int main(int argc, char *argv[])
{
UInt32 i;
IndexType FileIndex;
if(argc==1){
fprintf(stderr,"Please start with\n mkindex ftp://user:pass@server.com/path/\n");
return 1;
}
if(argv[1][1]!='i'){
fprintf(stderr,"self launch");
system(Str_Merge6(argv[0]," -i ",argv[1],"|ftp ",argv[1], "\n"));
return 1;
}
fprintf(stdout,"ls\n ");
}
Problem is that ftp quits as soon as there are no more commands coming from the main program, instead of sitting there and waiting for the next command. If I issue a cd and an ls command while ftp is still busy loggin in, it'll execute both, but exit immediately afterwards, like it would get an EOF from the input. Any ideas how to solve this? Any help would be highly appreciated!