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

如何使用c将文件从linux复制到windows服务器,c,windows,linux,file,copy,C,Windows,Linux,File,Copy,我必须创建一个在Linux服务器上运行的C程序。它将从Oracle数据库获取信息,创建一个本地文件,然后将该文件复制到Windows server。我知道如何在Linux服务器上创建本地文件。但是如何将其从C复制到windows server?首先装载windows共享,然后在装载的目录中创建文件。首先装载windows共享,然后在装载的目录中创建文件。或使用FTP。有很多FTP库可以链接到Linux C代码。或使用FTP。有很多FTP库可以链接到Linux C代码中。windows机器应该提供

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

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

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

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

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

windows机器应该提供一种方法,首先接受这种行为(FTP出现在脑海中)。您可以开发一个在windows计算机上运行的应用程序来接受该文件,但更简单的方法是使用已开发的应用程序之一

这就是一个例子


对于实际问题,即如何上传文件,任何ftp客户端都会这样做。

windows计算机应该首先提供一种方法来接受这种行为(想到ftp)。您可以开发一个在windows计算机上运行的应用程序来接受该文件,但更简单的方法是使用已开发的应用程序之一

这就是一个例子


对于实际问题,即如何上传文件,任何ftp客户端都会这样做。

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

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

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

  • NFS:或者,您可以使用NFS在Linux上导出目录,并在Win计算机上安装/配置NFS产品。如果出于任何原因(例如安全性/身份验证)不能使用Samba,我将此视为第二个选项

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

  • http:您需要在Windows计算机上安装一个http服务器和一个允许上载的页面(IIS加上一些asp页面就足够了),并使用与之对话

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


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

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

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

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

  • NFS:或者,您可以使用NFS在Linux上导出目录,并在Win计算机上安装/配置NFS产品。如果出于任何原因(例如安全性/身份验证)不能使用Samba,我将此视为第二个选项

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

  • http:您需要在Windows计算机上安装一个http服务器和一个允许上载的页面(IIS加上一些asp页面就足够了),并使用与之对话

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


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

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

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

就是这样。

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

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

就是这样。

使用SMTP并发送怎么样?

使用SMTP并发送怎么样?

是的-只需使用您想要的任何网络文件系统(如Samba)安装windows box,并使用普通IO原语将文件复制到该目录中即可


标记

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

标记