如何使用c将文件从Linux复制到Windows服务器



我必须创建一个将在Linux服务器上运行的C程序。它将从Oracle数据库中获取信息,创建一个本地文件,然后将该文件复制到Windows服务器。我知道如何在 Linux 服务器上创建本地文件。但是从C语言将其复制到Windows服务器的方法是什么?

先装载 Windows 共享,然后在装载的目录中创建文件。

这取决于两台计算机之间的连接类型以及您必须实现的安全级别。

最简单的情况是两台计算机位于同一 LAN 上,并且没有特定的安全性。在这种情况下,可能的解决方案是:

  • Samba :在Win机器上共享一个目录,在Linux机器上安装/配置Samba。C 程序会将共享磁盘视为特定路径(例如/win/share)下的本地磁盘。

  • NFS :或者,您可以使用 NFS 在 Linux 上导出目录,并在 Win 机器上安装/配置 NFS 产品。我认为这是第二种选择,如果 Samba 不能出于任何原因(例如安全/身份验证)使用。

  • FTP :您将需要在Windows计算机上使用FTP服务器。通过 C 程序复制文件也会更棘手。如果我没记错的话,Linux 上的 ftp 客户端是交互式的,它不应该在脚本中使用(或通过其他程序),但您应该检查。

  • http :您将需要在Windows机器上安装HTTP服务器和一个允许上传的页面(IIS加上一些asp页面,应该足够了)并使用libcurl与之对话。

更复杂的场景,当安全性是一个问题时,需要使用scp或sftp和SSL连接。此外,带有https的libcurl可以提供足够好的解决方案。

我的建议是:先尝试Samba,看看是否满足你的需求,所有其他选项都需要你作为程序员做更多的工作。

也许你可以简单地使用smbclient?无需设置任何服务器或任何东西,只需在服务器上拥有某种共享驱动器即可。

smbclient //myserver/my_directory <password> -U [domain/]<my_user>

然后,您可以在linux框上的当前目录和Windows服务器之间"放置"和"获取"任何您喜欢的文件。

put my_file_to_copy.dat

仅此而已。

是的 - 只需使用您想要的任何网络文件系统(例如 Samba)挂载 Windows 盒子,并使用普通的 IO 原语将文件复制到该目录中。

马克

或者使用 FTP。有很多FTP库可以链接到Linux C代码中。

Windows机器应该首先提供接受这种行为的方法(想到FTP)。您可以开发一个在Windows机器上运行的应用程序来接受该文件,但使用已经开发的应用程序之一更容易。

Filezilla就是一个例子。

对于实际问题,如何上传文件,任何ftp客户端都可以解决问题。

使用SMTP并邮寄它怎么样?

相关内容

  • 没有找到相关文章

最新更新