如何使用system()在c中执行2个成功的系统命令,例如连接到ftp并使用程序登录
How to execute 2 sucessive system command in c using system() like connecting to ftp and logging in using program?
我想在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 中找到足够的文档。如果这回答了您的问题,请告诉我。
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- WinInet ftp连接错误123
- 使用libcURL通过HTTP代理连接FTP服务器失败
- FTP被动模式连接拒绝