我只是想在 HFS+ 格式的 Volumn 上恢复 C 中的文件。根据
man undelete
NAME undelete -- 尝试恢复已删除的文件
LIBRARY 标准 C 库 (libc, -lc)
概要 #包括
int undelete(const char *path);
描述
undelete()
系统调用尝试恢复以路径命名的已删除文件。目前,这仅在命名对象是联合文件系统中的空白时才有效。系统调用删除了白化,导致联合堆栈较低层中的任何对象再次变得可见。最终,该
undelete()
功能可以扩展到能够恢复已删除文件的其他文件系统,例如日志结构文件系统。返回值
如果成功,该
undelete()
函数返回值 0;否则返回值 -1 并设置全局变量errno
以指示错误。
所以程序很简单:
当前目录 (pwd) 是 /Users/Leo/Desktop/,我使用的是带有 HFS+ 文件系统的 Mac 10.7.2。
#include <unistd.h>
int main()
{
char a="/Users/Leo/Desktop/test/a.out";//I delete a.out using rm for testing
const char* pa=&a;
return undelete(pa);
}
但是当我运行程序时,我得到了 shell 返回 255。
任何的想法?谢谢