gpt4 book ai didi

linux - "sys_open"文件时正确的权限是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:14 25 4
gpt4 key购买 nike

我正在尝试在 Linux 上使用 x86 程序集读取文件的内容。问题是,我们应该将什么放入 edx - sys_open 的“权限”寄存器。

我以前用过C的open();但没有任何“权限”字段。我正在尝试读取属于可执行文件同一所有者的文件。该文件的权限设置为 0400 (-r--------)。我试过用 edx 打开文件:空 (0)、06660400。它们都将“-13”返回给 eax,这似乎是 EACCES

示例代码:

mov eax, 0x5;     //sys_open
push 0x6362612f //file name in hex, let's say "/abc"
mov ebx, esp; //filename to ebx
xor ecx, ecx; //O_RDONLY
mov edx, 0666o; //permissions in octal for nasm
int 0x80; //call it

一般情况下(或在这种只读情况下)edx 应该是什么来打开一个文件?文件的当前权限,空的,任意的?

谢谢!

最佳答案

man 2 open :

if neither O_CREAT nor O_TMPFILE is specified, then mode is ignored.

因此,如果您打开现有文件进行阅读,那么在 edx 中放入什么并不重要。你的问题的原因是别的。

关于linux - "sys_open"文件时正确的权限是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54609695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com