1

我想使用 c 中的系统函数来使用 ftp 命令。我需要执行 3 个命令。

1 FTP
2 用户名
3 密码

我如何使用 system() 执行上述 3.... 我被困在这里
system(ftp);

4

2 回答 2

4

您可能想检查您的版本是否ftp允许您在命令行上指定用户名和密码(有些可以)。当然,您也可以自己实现 ftp(直接使用套接字)或通过库(周围有几个)。

否则,如果你真的想运行系统的ftp命令,你可能想使用popen(或者,在 Windows 上,_popen)来代替。

FILE *cmd = popen("cmd", "w");

if (NULL != cmd)
    fprintf(cmd, "%s\n%s", user_name, password);

您写入的FILE *内容进入子进程的标准输入(如果您使用"r"而不是打开"w",您可以从子进程的标准输出中读取)。许多(但不是全部)最新版本popen也支持"rw",因此您可以写入孩子的标准输入并从其标准输出中读取。

但是请注意,这仅适用于从其标准输入读取的子进程。有些人使用其他方法直接从控制台/键盘读取,它不会(必然)与那些一起工作。

于 2013-10-02T20:32:13.703 回答
0

我建议您使用其他一些 API 而不是 system()。System() 被认为是提供命令的非标准方式。我建议只使用 FTP 命令打开该终端,然后使用 ftp apis overs winsock api's。

这些是我知道的几个图书馆。请使用如果,

libftp 
ftplib 

为此,可以在网络上找到足够的文档。如果这回答了您的问题,请告诉我。

于 2013-10-02T20:33:03.183 回答