我希望将函数fopen的filename参数作为动态变量,为我的ftp服务器接收ftp客户端输入。我在这个论坛和谷歌上尝试了很多不同的方法,但fopen仍然无法识别“文件名”。
else if (strncmp(client->input, "retr", 4) == 0) {
char fname[1024];
// COMMAND LINE: retr filePATHNAME thats why +5
strcpy(fname, client->input+5);
if(fopen(fname, "r") != NULL) {
...
如果我把 fopen(“/ pub / test.txt”,“r”),它可以工作,因为它与空格或引号或类型的东西有关。
但是,如果我尝试在客户端命令行上使用 retr /pub/test.txt 甚至 retr“/pub/test.txt” fopen不起作用,不会打开文件。
长期坚持这一点,任何帮助都表示赞赏。
由于
答案 0 :(得分:1)
我找到了答案。
感谢@ user3386109提示。
我基本上必须清除所有空格,输入的新行
strtok(client->input+5,"\r\n\t");