使用 strace 调试连接系统调用 – @"sun_path" 是什么意思?

薇薇安

我有两个不同语言的程序试图连接到 Linux 系统上的本地抽象套接字。两者之一失败。我很难确定原因。我只想知道我在strace输出中找到的一个差异意味着什么,所以我可以修复它。

工作有这个strace输出:

socket(PF_LOCAL, SOCK_SEQPACKET, 0)     = 3
connect(3, {sa_family=AF_LOCAL, sun_path=@"qwertystop.bus.8"}, 19) = 0

非工作有以下strace输出:

[pid  6307] socket(PF_LOCAL, SOCK_SEQPACKET, 0) = 13
[pid  6307] connect(13, {sa_family=AF_LOCAL, sun_path="qwertystop.bus.8"}, 19) = -1 ENOENT (No such file or directory)

有3个区别:nonworking的来自一个有多个pid的程序,connect调用的返回值不同,working的@sun_path字符串有一个我认为导致@丢失的原因也是导致失败的原因,因为套接字连接仅因为它是由不同的进程启动而在进程中不起作用是没有意义的。


(我明确没有要求“连接到抽象套接字”的通用解决方案,这就是为什么我没有说明语言。主要是因为这是家庭作业,我拒绝创建可能诱使我直接复制代码的情况。)

薇薇安

意义确定。这意味着字符串前面有一个空字节。或者可能只是一个非打印字符,或者它表示套接字是抽象的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

memcpy:unix套接字的sun_path的起始地址索引

使用strace调试连接超时?

调用类的方法时,“使用”是什么意思

strace在显示系统调用中花费的时间时使用的时间单位是什么?

strace select的“ left”字段是什么意思?

在Intellij中使用Java调试器时,“ Drop Frame”是什么意思?

使用IntelliJ IDEA进行调试时,不同的可变颜色是什么意思?

使用“本地” SQL连接到数据库是什么意思?

使用冒号语法的方法调用错误。没错 但是这是什么意思?

“使用常规函数'this'表示调用该函数的对象”是什么意思?

使用(int [] [])的方法是什么意思?

“使用ODR”是什么意思?

“使用API”是什么意思?

使用“类型”是什么意思

*使用hexdump -C是什么意思?

“静默”文件系统是什么意思?

“系统语言”是什么意思?

/../或“ /../”在文件系统中是什么意思?

“对等连接重置”是什么意思?

调用函数时(_)是什么意思?

:: 在函数调用前是什么意思?

“从用户程序调用操作系统”是什么意思?

Unix系统调用名称后的(2)是什么意思?

strace:没有<resumed>的连续<unfinished ...> syscall是什么意思?

在Linux系统中,使用“ top”命令,top命令S列中的“ I”是什么意思,S --status

当系统监视器报告程序使用了100%以上的CPU时,这是什么意思?

“不能在顶层使用`!!!`”是什么意思。是什么意思以及如何解决?

“默认行为:尝试使用 Frama-C 内核”是什么意思。是什么意思?

在Extra列中的EXPLAIN mysql命令中使用连接缓冲区(块嵌套循环)是什么意思?