如何使用system()在c中执行2个成功的系统命令,例如连接到ftp并使用程序登录

How to execute 2 sucessive system command in c using system() like connecting to ftp and logging in using program?

本文关键字:连接 ftp 登录 程序 系统命令 system 何使用 2个 执行 成功      更新时间:2023-10-16

我想在c中使用ftp命令使用系统功能。我需要执行 3 个命令。

1 个 FTP
2 用户名
3 密码

如何使用系统()执行上述 3 个操作....我被困在这里
系统(FTP);

您可能需要

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

否则,如果您确实要运行系统的ftp命令,则可能需要使用popen(或者在Windows上,_popen)代替。

FILE *cmd = popen("cmd", "w");
if (NULL != cmd)
    fprintf(cmd, "%sn%s", user_name, password);

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

但请注意,这仅适用于从其标准输入读取的子进程。有些人使用其他方法直接从控制台/键盘读取,并且(不一定)不适用于这些方法。

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

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

libftp 
ftplib 

可以在 WEB 中找到足够的文档。如果这回答了您的问题,请告诉我。