小编Kir*_*ran的帖子

如何在 GDB 中将二进制值(1010)打印成十进制值(10)?

我想在 中打印 1010 的十进制值gdb,但它打印的结果是我最后给出的结果。

(gdb) 
(gdb) p/d 1010
$1 = 1010
(gdb)
Run Code Online (Sandbox Code Playgroud)

c unix linux gdb

6
推荐指数
1
解决办法
1390
查看次数

WEXITSTATUS 在成功情况下返回 popen() 的无效退出状态

我正在尝试使用 来获取子进程的存在状态popen()

情况 1:使用 shell 命令调用函数返回错误。这按预期工作。

func("du -sh _invalid_file_");
Run Code Online (Sandbox Code Playgroud)

输出:

du: cannot access '_invalid_file_': No such file or directory
Child exit value: 1
Run Code Online (Sandbox Code Playgroud)

du这里子进程的存在状态与其中运行的退出值相同bash

$ du -sh _invalid_file_
du: cannot access '_invalid_file_': No such file or directory
$ 
$ echo $?
 1
$
Run Code Online (Sandbox Code Playgroud)

情况 2:(错误情况)使用以下 shell 命令调用函数返回成功。在我的代码中,WEXITSTATUS()返回值但返回non-zero相同的命令。bash0

du: cannot access '_invalid_file_': No such file or directory
Child exit value: 1
Run Code Online (Sandbox Code Playgroud)

输出:

Child exit value: 141
Run Code Online (Sandbox Code Playgroud)

请建议解决此问题。粘贴下面的代码。

$ …
Run Code Online (Sandbox Code Playgroud)

c linux bash popen pclose

3
推荐指数
1
解决办法
500
查看次数

标签 统计

c ×2

linux ×2

bash ×1

gdb ×1

pclose ×1

popen ×1

unix ×1