我試圖通過我在c中編寫的應用程序上載文件。 因爲我沒有找到任何API,我決定通過命令。 輸入命令行看起來像這樣。當特殊字符存在於密碼中時,ftp文件上傳失敗
ftp -u ftp://ftpuser:[email protected]@x.x.x.x/test.txt /tmp/test.txt
無論何時存在特殊字符,登錄都將失敗。當我嘗試與不同的用戶沒有任何特殊字符的密碼上傳作品。
如何解決此問題或者是否有其他方法可用,如API哪些可以使用。
如果有任何示例代碼可用,那麼它將有很大的幫助。
特殊字符意味着@
,$
,#
(例:[email protected]
,password$123
)
代碼片段:
RunCommandWithPipe(PSTRING CmdLine)
{
FILE *fp;
int status;
fp = popen(CmdLine, "r");
if (fp == NULL)
{
ErrGen(constErrOpenFile);
}
status = pclose(fp);
if (status == -1)
{
ErrGen(constErrCloseFile);
}
}
請包括相關的代碼。你如何調用命令?系統? popen方法?什麼是特殊字符?他們有什麼特別之處?它們對殼是特別的嗎?它們是否包含空字節的Unicode字符?另外,這個例子的ftp命令是否正確?爲什麼那裏有兩個@符號?密碼應該是「密碼@ 123」嗎? –
是密碼是「密碼@ 123」。是上面的例子是格式ftp -u ftp://用戶名:密碼@主機/路徑「源位置」。我嘗試通過終端手動,它的工作時,沒有特殊字符出現在密碼 – Darshan