system-calls 相关问题

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

这段代码调用了多少次fork()系统调用?

我不明白如何计算fork系统调用。 我以为下面的代码调用了 4 次 fork 系统调用,但答案是 9 次。为什么? #包括 #包括 主函数() ...

回答 0 投票 0

在 mm/slob.c 中实现了两个系统调用。尝试编译内核时无法识别它们

熟悉实现系统调用的流程。话虽这么说,我已经坚持了几个小时。 下面是 mm/slob.c 中系统调用的实现。 asm链接长

回答 0 投票 0

OpenSSL 3.0 和 DRBG 使用了哪些系统变量?

我正在编写一个 C 内核模块来拦截和修改 __x64_sys_getrandom() 系统调用。 OpenSSL 3.0 DRBG 正在使用此调用来请求 48 字节的系统熵来为其 DRBG 播种。我有...

回答 0 投票 0

什么是 RSEQ(可重启序列)以及如何使用它们?

Linux 4.18 引入了 rseq(2) 系统调用。我发现SO上只有一个问题完全提到了rseq,而且关于它的信息相对较少,所以我决定问一下。什么是可重启的

回答 0 投票 0

为什么我能够创建模式为 000 的文件并使用开放系统调用在 C 中写入它?

根据我的理解,000 权限意味着除了 root 用户之外,没有人能够读取或写入该文件。为什么下面的代码有效? #包括 #包括 根据我的理解,000 权限意味着除了 root 用户之外,没有人能够读取或写入该文件。为什么下面这段代码有效? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <string.h> int main(void) { char *message = "Hello world\n"; int fd = open("greeting.txt", O_CREAT | O_WRONLY, 0000); write(fd, message, strlen(message)); close(fd); } 此外,当我使用 sem_open(sem_name, O_CREAT, 0000, 1); 创建命名信号量时,即使文件权限设置为 000,父进程和所有子进程都能够修改它。 我对低级 C 系统调用和信号量的理解是有限的,因此需要一个全面的解释。 来自 man open https://man7.org/linux/man-pages/man2/open.2.html : Note that mode applies only to future accesses of the newly created file; the open() call that creates a read- only file may well return a read/write file descriptor.

回答 1 投票 0

entry_SYSCALL_64_after_hwframe 根据“性能记录”突然有高 CPU 负载

它是关于在几种情况下浪费大量 CPU 能力的系统调用。 perf 显示我面临的问题是使用 20-35% 的 CPU 功率来处理我不知道的事情。 我可以找到一些 (o...

回答 1 投票 0

将 Go func 转换为 uintptr 的正确方法是什么?

我需要从 Go 代码传递和接收 Go 函数。 由于系统调用在 Go 语言中的工作方式,用于“通道”的类型是 uintptr。 除了uintp,我别无选择……

回答 0 投票 0

尝试从 Golang 中的 ESENT.dll 调用 JetAttachDatabase 时出错

我正在尝试使用 Golang 中的“ESENT.dll”库。目的是打开一个 ESEDB 文件并读取其中的一些数据。 根据 MSDN,我首先必须创建一个 ESE 会话,然后附加...

回答 1 投票 0

将 C 结构读入 Go 结构

我正在尝试将 C 结构读入 Go 结构。 我对 DLL 库中的函数使用系统调用并获取其返回值。 func LoadWAV(file string, spec *m.AudioSpec, audioBuf **uint8, audioL...

回答 0 投票 0

操作系统学校项目

我需要帮助使用 C 和系统调用在 Ubuntu 中完成我的 schhol 项目。 该项目的目的是模拟船舶在港口之间运输不同种类货物的交通

回答 0 投票 0

如何用Syscall显示写入我的寄存器的值

全部 我想在终端中显示函数 Additionner(一个添加函数)的返回值 (13)。 它存储在 %eax 寄存器中。 我知道,我不必为这个程序做一个函数......

回答 0 投票 0

setgid/setuid对编译后的golang代码没有影响1.19

➜ go版本 go 版本 go1.19.6 linux/amd64 ➜ uname -a Linux dmitry-desktop 6.1.18-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 11 16:09:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux 我是你...

回答 1 投票 0

从 Go 调用 so 文件中的函数

是否可以从 Go 调用静态对象 (.so) 文件? 我一直在搜索谷歌,我一直在寻找我能做到的说法 lib, _ := syscall.LoadLibrary("...") 但是尝试这个会给...

回答 4 投票 0

strace 中的 double close 一定不好吗?

我正在训练神经网络。在我的代码库中的某处,我有如下代码片段: 定义 foo(): d = {} 使用 PIL.Image.open(img_path) 作为 img: d[“img”] =

回答 1 投票 0

xv6中系统调用的执行顺序

我们在使用系统调用的时候(在用户层),从来没有加上sys_前缀,但是为什么我们调用系统调用函数的时候,首先是系统调用处理函数(前缀为sys_)是

回答 2 投票 0

为 python 单元测试生成代码覆盖率报告

我正在为通过 python 中的系统调用调用的测试文件生成覆盖率报告。 例子: run_L1_test.py 导入操作系统 导入系统 导入子流程 导入 argparse 解析 = argparse.

回答 0 投票 0

为什么围棋程序中personality(2)的返回值有时不正确?

我编写了一个 Go 程序,它应该通过将 ADDR_NO_RANDOMIZE 作为 persona 参数传递给 personality(2) 系统调用来禁用 ASLR。它使用 golang 中的 unix.Syscall 函数....

回答 0 投票 0

无法访问打开的/arch/x86/syscalls/syscall_32.tbl

因为我在切换到内核后正在编写此命令。当我编译它时,它没有显示任何列表。是否有任何其他命令可以打开列表? 打开 /arch/x86/syscalls/syscall_32.tbl

回答 2 投票 0

我如何将 linux 系统调用映射到功能

我想在非特权模式下运行一个容器。这是为了让它更安全和更好地控制。我从我的容器中记录了几个系统调用。 以下是系统调用: 接收自 米...

回答 2 投票 0

一个队列系统调用可以避免开销(在 Linux 中)吗?

我读到系统调用很昂贵,因为我们必须在进行系统调用之前切换到内核模式,然后我们必须切换回用户模式。 所以,我想知道,有什么办法可以让我排队……

回答 1 投票 0

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