system-calls 相关问题

程序使用系统调用来从操作系统的内核请求服务。

在 64 位 Linux 上为 x86_64 编写 putchar?

我正在尝试使用 write 系统调用来重现打印单个字符的 putchar 函数行为。我的代码如下, asm_putchar: 推送rbp 移动 rbp, rsp 莫...

回答 1 投票 0

EOF是否设置errno?

我总是为系统调用的返回值而苦苦挣扎——它们是如此不一致! 通常我检查它们是否为 NULL 或 -1,然后调用 perror。然而,对于 fgets,手册页显示: 获取()...

回答 2 投票 0

int指令运行时如何知道使用哪些寄存器?

我是一名学习汇编语言(NASM)的学生,我需要一些关于中断“功能”或 int 如何知道要“运行”的寄存器的澄清。我发现了

回答 1 投票 0

通过系统调用实现简单版本的readdir

我正在读以下著名的书。 B. W. Kernighan 和 D. M. Ritchie,《C 编程语言》,第二版,Prentice Hall,1988 年。 在最后一章第 8.6 节中,作者给出了一个例子...

回答 1 投票 0

递归获取目录中所有文件的大小

我正在读以下著名的书。 B. W. Kernighan 和 D. M. Ritchie,《C 编程语言》,第二版,Prentice Hall,1988 年。 在最后一章第 8.6 节中,作者给出了一个例子...

回答 1 投票 0

除非我存储文件描述符,否则为什么会收到“检测到堆栈粉碎”错误?

我正在尝试一些 I/O 系统调用:从现有文件中读取 2 个字节,将它们放入缓冲区中,然后将这些字节写入另一个空的现有文件中。 // 读_写.c int open(字符*

回答 1 投票 0

如何让系统调用跨平台:可维护且最佳实践

我有数百个这样的系统调用: 字符缓冲区[MAX_LINE_LENGTH]; // ... sprintf(缓冲区,"cat cgx_tmp.fbl >> cgx_tmp2.fbl"); 系统(缓冲区); sprintf(缓冲区,“mv -f cgx_t ...

回答 1 投票 0

eBPF:仅使用系统调用加载 eBPF 程序并将其附加到 sys_enter_execve

上下文:我正在尝试向 eBPF 字节码引入突变。因此,我想从一个简单的目标文件加载 eBPF 字节码,而不是从 ELF 加载(据我所知,libbpf 需要这样)。 我有一个

回答 1 投票 0

为什么 Linux 在发出系统调用时将 ARM64 中的 SVE 寄存器的高位清零?

在Linux 5.10 AArch64 syscall.c源代码中,有一个函数sve_user_discard(),它可以使SVE寄存器的[max:128]位清零。这是代码。 我无法理解用法...

回答 1 投票 0

Java 中 write(int b) 和 write(byte b[]) 之间的性能差距

我发现,当我使用 Socket socket = new Socket(); 时OutputStream 输出流=socket.getOutputStream();调用 write 方法,有两种选择: write(int b) 和 write(byte b[]),我...

回答 1 投票 0

如何在 Windows 上找到系统调用?

我是汇编代码的初学者。我从来没有使用过windows汇编代码,所以我真的很困惑。 当我运行 printf("hello world! ") 在 Windows 11、Visual Studio 202 中...

回答 1 投票 0

系统调用劫持特定进程

我想让来自特定进程的系统调用由另一个进程控制(管理员或同一用户,对我来说并不重要。)我意识到这会给一些rootkit木马的感觉,但是......

回答 1 投票 0

系统调用劫持特定进程

我想让来自特定进程的系统调用由另一个进程控制(管理员或同一用户,对我来说并不重要。)我意识到这会给一些rootkit木马的感觉,但是......

回答 1 投票 0

在fork()系统调用中如何确保父进程先执行?

我在大学学习操作系统。 有多种方法可以使用 wait() 系统调用和 vfork() 确保子级首先执行(在父级之前)。 但我没有找到确保父进程执行的方法

回答 1 投票 0

macOS ktrace“-t c”系统调用跟踪在较新的 macOS 上可用吗?

有人知道是否有办法在 macOS 12+ 中通过 ktrace 仅跟踪系统调用吗? (显然这是禁用 SIP 的情况。) 过去,人们可以通过以下方式跟踪系统调用: sudo ktrace 跟踪 -s -S -t c -c ./

回答 1 投票 0

Windows 上的系统调用本质上就比 Linux 慢吗?

我对系统调用的理解是,在Linux中,系统调用机制(int 0x80或其他)是有文档记录的,并保证在不同的内核版本之间保持稳定。使用此信息...

回答 2 投票 0

系统调用中的 printf 返回格式错误的输出

我正在使用 kext 记录 OS X 中的系统调用,如下所示: int hook_read(struct proc *p, struct read_args *u, user_ssize_t *r) { /* 在这里获取一些参数... */ printf("[IDEN] SYS_read 已调用,...

回答 1 投票 0

GetWindowText 如何获取另一个进程拥有的窗口的名称,而无需系统调用来读取该进程的内存?

我想弄清楚 GetWindowText 背后的系统调用是什么。我编写了一个简单的程序来调用 GetWindowText,并使用不同进程中的窗口句柄。 int CALLBACK WinMain(HINSTANCE

回答 2 投票 0

如何在 Linux 上重新实现(或包装)系统调用函数?

假设我想完全接管 open() 系统调用,也许包装实际的系统调用并执行一些日志记录。一种方法是使用 LD_PRELOAD 加载(用户创建的)共享对象

回答 3 投票 0

在哪里可以找到 SyscallN 的文档,因为 syscall.Syscall6 从 Go 1.18 开始已被弃用?

当我在将 go.mod 中的 go 值从 go 1.16 更改为 go 1.20 后在 Go 代码上运行 golangci-lint 时,我现在收到此 linter 警告: windows.go:210:16: SA1019: syscall.Syscall6 已被弃用

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.