为什么要这样做:
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
int main(void) {
const char filea[] = "../test/hunspell";
const char fileb[] = "testa/dictionaries";
int returnr;
returnr = symlink(filea, fileb);
printf("%d\n", returnr);
return returnr;
}返回0,我得到如下结果:
[gala@arch test]$ tree
.
├── symtest
├── test
├── testa
│ └── dictionaries -> ../test/hunspell
└── test.c
[gala@arch test]$ pwd
/home/gala/testing/test但这一点:
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
int main(void) {
const char filea[] = "/home/gala/testing/test/hunspell";
const char fileb[] = "/home/gala/testing/testa/dictionaries";
int returnr;
returnr = symlink(filea, fileb);
printf("%d\n", returnr);
return returnr;
}返回-1但失败。
为什么c symlink()函数在绝对路径上失败,但在相对路径上有效?我是不是漏掉了什么?
为什么它坏了?
发布于 2016-05-03 22:30:07
你确定你的路径是好的吗?如果您在/home/gala/testing/test中运行tree,那么fileb的路径应该是/home/gala/testing/test/testa/dictionaries而不是/home/gala/testing/testa/dictionaries。
https://stackoverflow.com/questions/36988380
复制相似问题