在本地计算机上,您可以使用C中的dirent.h库浏览文件和文件夹。您将如何在远程Linux计算机上执行此操作?您是否通过ssh连接通过管道传递readdir()命令?我想在不使用任何非标准库的情况下实现这一目标。
答案 0 :(得分:1)
libssh
的SSH库。
SFTP
和SCP
的API,它们是SSH的文件操作组件。
在该链接的页面中有用于“列出目录内容”的示例代码。
我想在不使用任何非标准库的情况下实现这一目标。
那是不可行的。尽管Linux发行版中包含的库(包括源头文件和可直接链接的Blob)可能由于其普遍存在而被包含在libssh
中,但它们并不是“标准”的,因为C标准库没有提到SSH / SFTP(甚至没有文件系统API!),也没有POSIX。
SSH(和SFTP)是一个相对较新的协议-它仅在1995年创建,直到1990年代后期才得到广泛采用(人们仍在使用rlogin
,rsh
这个标准FTP,甚至TELNET)-它早于FTP,HTTP,SMTP和SSL / TLS。
(记住C是非常小的-我的看法是,它是一种用于在内存上进行操作和迭代的语言-其他所有内容,甚至syscall都不是C标准的一部分-这就是为什么您可以将C编译为JavaScript的原因,例如,您无法做任何有趣的事,因为您无法通过JavaScript进行系统调用)