【发布时间】:2011-02-05 15:26:34
【问题描述】:
我正在编写一个源代码控制应用程序。现在我想使用 BSD 套接字通过网络将文件从一台机器复制到另一台机器。我也不想遵循符号链接,而是将链接本身复制到另一台机器。我有点卡在这个上。
我想到的一个选项是使用readlink() 命令,将数据发送到机器的另一端并将接收到的内容写入文件。我什至不知道这是否可行,因为我不知道不同的操作系统(在我的例子中是 Ubuntu 和 Mac OS X)在符号链接中是否具有相同的文件结构。而且我什至不知道将这些接收到的内容写入文件是否会自动使其成为符号链接。老实说,我几乎不怀疑这一点。也许带有O_SYMLINK 标志的open() 命令可以创建一个符号链接并写入它?
我想到的另一个选择是让另一台机器知道我们正在处理一个链接并在该机器上使用symlink() 建立该链接,但这里我有两个问题。首先,我如何获得符号链接在文件系统上指向的绝对文件名。第二个问题是我不知道用不存在的文件调用symlink() 是否有效?
如果有人能解释一下,我将不胜感激, ief2
【问题讨论】:
标签: c unix networking copy symlink