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

时间:2008-10-09 12:01:39

标签: c windows linux file copy

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

7 个答案:

答案 0 :(得分:8)

首先挂载Windows共享,然后在挂载目录中创建该文件。

答案 1 :(得分:8)

这取决于两台机器之间的连接类型以及您必须达到的安全级别。

最简单的情况是两台机器在同一局域网上,没有特别的安全性。在这种情况下,可能的解决方案是:

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

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

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

  • http :您需要Windows计算机上的http服务器和允许上传的页面(IIS加上一些asp页面,应该就够了)并使用 {{3

  • 与对话框进行对话。

当安全性受到关注时,更复杂的情况需要使用scp或sftp over和SSL连接。使用https的libcurl也可以提供足够好的解决方案。

我的建议是:首先尝试使用Samba并查看是否符合您的需求,所有其他选项将需要您作为程序员的更多工作。

答案 2 :(得分:3)

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

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

然后你可以在linux框和windows服务器上的当前目录下“放置”和“获取”你想要的任何文件。

put my_file_to_copy.dat

就此而言。

答案 3 :(得分:1)

是的 - 只需使用您想要的任何网络文件系统(例如Samba)安装Windows框,然后使用普通的IO原语将文件复制到该目录中。

标记

答案 4 :(得分:0)

或使用FTP。您可以链接到Linux C代码中的大量FTP库。

答案 5 :(得分:0)

Windows机器应首先提供接受此行为的意思(FTP会浮现在脑海中)。您可以开发一个在Windows机器上运行的应用程序来接受该文件,但更容易使用已经开发的文件之一。

filezilla就是一个例子。

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

答案 6 :(得分:0)

如何使用SMTP并邮寄呢?