【发布时间】:2010-02-24 23:43:08
【问题描述】:
我正在编写一个(取消)存档工具,它的设计方式是首先从存档中创建一个常规文件,然后再检查特殊属性并可能确定该项目实际上是一个符号链接。
注意:在更多人误解我想要制作一个文件的符号链接之前。不,我将符号链接数据,即它的路径,写入文件,然后我想告诉文件系统这是一个符号链接
我一直在 OS X 上开发此功能,只需相应地设置其类型和创建者代码,就可以将常规文件转换为符号链接。
现在我想让这段代码也能在 Linux 上运行。所以我喜欢在那里找到类似的方式。
我知道创建符号链接的正常方法是调用 symlink() 函数,但我想知道是否还有一种方法可以将常规文件更改为符号链接,就像在 OSX 的 BSD 系统中一样,这样我就不必过多地重构我的工作代码?
有 lstat(),它在 st_mode 的最高位返回文件类型。现在我想知道这个模式字段是否也有类似的setter函数。
【问题讨论】:
-
检查我是否理解:您想将常规文件转换为指向文件包含内容的符号链接?
-
与较新的问题"What is there behind a symbolic link?" 相关。从接受的答案中,我得出结论,普通文件和符号链接之间的区别在于某些 inode 标志,所以我想翻转该标志就足够了,但我想这并不容易。