&1 | 执行 strace | grep“xyz”。我正在寻找发生在文件 xyz 上的所有系统调用。 我通过连续按 Ctrl-C 杀-6ren">
gpt4 book ai didi

linux - 将 Ctrl+C 发送到 strace 导致目标进程的写入系统调用失败,返回 "interrupted system call"

转载 作者:太空狗 更新时间:2023-10-29 11:17:19 31 4
gpt4 key购买 nike

我正在使用 time strace -p 54545 -fy 2>&1 | 执行 strace | grep“xyz”。我正在寻找发生在文件 xyz 上的所有系统调用。

我通过连续按 Ctrl-C 杀死了 strace。我在进程 54545 中看到 write 系统调用失败,错误号为 4。

我没有向进程 54545 发送任何信号。strace 会导致这个吗?

最佳答案

为了分离您的进程,内核显然正在等待一个点,在该点它可以到达进程的内核状态中的有效位置以执行分离。Write 是内核可以根据需要选择中断的系统调用之一。也就是说,Unix 进程应该通过重试来处理来自写入系统调用的 EINTR。因此,为了在内核执行中到达可以处理分离请求的位置,内核选择执行此操作

关于linux - 将 Ctrl+C 发送到 strace 导致目标进程的写入系统调用失败,返回 "interrupted system call",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46479711/

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