chenjing
|
6eddc869d3
|
feat: support link/symlink/readlink
新增link/symlink/readlink接口的系统调用及内核实现,当前仅支持jffs2文件系统。具体接口说明如下:
一、hard link
接口原型:
int link(const char *oldpath, const char *newpath);
int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags);
作用:
创建oldpath的硬链接,名为newpath。
功能说明:
1、newpath与oldpath必须在同一挂载分区内。
2、若newpath已存在,不会覆盖,错误码EEXIST。
3、oldpath必须为普通文件或者软链接文件。
4、如果oldpath是一个软链接文件,那么:
若调用link接口或者linkat(flags=0),创建出软链接文件的硬链接;
若调用linkat(flags = AT_SYMLINK_FOLLOW),创建出软链接所指向源文件的硬链接。
5、oldpath与newpath对应同一个文件,对oldpath与newpath任一名字的操作都是直接操作文件,没有“原始文件”的说法。
6、使用cp命令拷贝一个硬链接文件,生成文件的拷贝,新文件的nlink数为1。
7、删除oldpath或newpath,底层文件仍存在,可以通过另一个path访问。只有当两个path都删除之后,才会真正将文件删除,空间释放。
二、symbol link
接口原型:
int symlink(const char *target, const char *linkpath);
int symlinkat(const char *target, int newdirfd, const char *linkpath);
作用:
创建一个软链接文件linkpath,存储字符串target。
功能说明:
1、target可以为任意字符串(长度小于PATH_MAX)。
2、若linkpath文件名已存在,不会覆盖,错误码EEXIST。
3、用readlink函数可读取软链接的target内容。
4、软链接文件本身大小为target长度。
5、ls时软链接文件类型显示为 'l'。
6、symlink最大循环次数为CONFIG_FS_MAX_LNK_CNT(目前为40),超出则返回错误,错误码ELOOP。
7、使用cp命令拷贝一个软链接文件:
若target是一个文件:创建一个源文件的拷贝,类型为普通文件;
若target非文件:拷贝失败。
三、readlink
接口原型:
ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
ssize_t readlinkat(int dirfd, const char *pathname, char *buf, size_t bufsiz);
作用:
读取软链接文件存放的的target内容。
功能说明:
1、pathname必须为软链接文件,否则错误码EINVAL。
2、如果bufsiz小于target长度,则截断target。
close #I3Q0OD
Change-Id: I3864d6069b627b705a369e8e32dc1eb922dc0157
Signed-off-by: chenjing <chenjing139@huawei.com>
|
2021-06-09 16:39:41 +08:00 |
openharmony_ci
|
3bf8cbc728
|
!301 修复SysOpenat返回的文件句柄不正确的问题
Merge pull request !301 from JING/openat
|
2021-06-09 13:50:40 +08:00 |
chenwei
|
101a55d119
|
fix: codex
1,VFS代码中不修改参数增加const修饰
2,fs_file_mapping.c: 增加安全函数的判空
3,path_cache.c: sizeof改为使用类型
4,fs_syscall.c: 对NULL解引用
5,VnodeLookup:冗余的判空,及不正确的判空
close: I3UMWD
Signed-off-by: yansira <yansira@hotmail.com>
|
2021-06-07 22:45:40 +08:00 |
chenjing
|
3457c0b11d
|
fix: SysOpenat返回值应该为进程fd,而非系统全局fd。
close #I3TNAK
Signed-off-by: chenjing <chenjing139@huawei.com>
Change-Id: Ie754259ead7fc8f4c3b0fa36ef31969dd728b235
|
2021-06-07 19:50:33 +08:00 |
Caoruihong
|
d2197c801f
|
use -include option instead of including menuconfig manually
Change-Id: Ie48b96fe9c8ab036d7234b56a169d6668171a895
|
2021-04-14 17:56:48 +08:00 |
Guangyao Ma
|
ce849f2145
|
feat: add and fix some syscall
add SysFstatat64 SysInfo SysVfork SysGetrusage
fix up SysDup SysFcntl
Change-Id: If41228da62f406312858921e48e2210e04f16a16
|
2021-04-09 14:45:53 +08:00 |
wangchenyang
|
d970750808
|
Description:vfs refactoring
Feature or Bugfix:Feature
Binary Source:Huawei
PrivateCode(Yes/No):Yes
Change-Id: I175d2648bc6f9078c34de2c0a5c93fda10b86c47
ChangeID:13306388
|
2021-03-19 13:22:46 +08:00 |
zhangfanfan2
|
36eb117140
|
组件解耦修改---支持内核态dynload和net关闭
|
2021-03-13 19:05:12 +08:00 |
mamingshuai
|
73a7b66116
|
update openharmony 1.0.1
|
2021-03-11 18:43:57 +08:00 |
zhangfanfan2
|
a541338656
|
代码中mount nfs问题修复
|
2020-12-24 14:48:18 +08:00 |
zhushengle
|
4ff3c4bf79
|
Description:Process security function rectification.
Reviewed-by:liulei, lihao, likailong
Change-Id: Ibacdda2ccbbc991ac9732f2ad09bdb98195203b3
|
2020-11-05 09:10:14 +08:00 |
Caoruihong
|
63bd69267a
|
drop unnecessary executable file permission mode
Change-Id: Ia6c1f6302407a707b3ec9b805f4c92d8a7970b86
|
2020-10-13 16:37:25 +08:00 |
wenjun
|
6df931fc98
|
add OpenHarmony 1.0 baseline
|
2020-09-08 17:22:24 +08:00 |