相关疑难解决方法(0)

ExitCodes大于255,可能吗?

如果是,在哪个操作系统,shell或其他什么?

考虑下面的java程序(我只是以java为例,任何语言对这个问题都有好处,更多的是关于操作系统):

public class ExitCode {
    public static void main(String args[]) {
        System.exit(Integer.parseInt(args[0]));
    }
}
Run Code Online (Sandbox Code Playgroud)

在Linux和bash上运行它,它总是返回不等于255的值,例如(echo $?打印上一个执行命令的退出代码)

> java ExitCode 2; echo $?
2

> java ExitCode 128; echo $?
128

> java ExitCode 255; echo $?
255

> java ExitCode 256; echo $?
0

> java ExitCode 65536; echo $?
0
Run Code Online (Sandbox Code Playgroud)

编辑:下面的(只有,到目前为止)答案完全解释了在UNIX上发生的事情.我仍然想知道其他操作系统.

shell operating-system exit-code

32
推荐指数
2
解决办法
1万
查看次数

什么是"$?" 准确地给我们一个shell脚本?

我看到代码写在网上的某个地方,我想知道究竟什么是"$?" 做/给我们.谷歌搜索没有帮助.

这是我看到的代码:

#!/bin/sh

ping -c 2 localhost
if [ $? != 0 ] ; then
    echo "Couldn't ping localhost, weird"
    fi

ping -c 2 veryweirdhostname.noend 
if [ $? != 0 ] ; then
    echo "Surprise, Couldn't ping a very weird hostname.."
    fi

echo "The pid of this process is $$"
Run Code Online (Sandbox Code Playgroud)

取自:http://efod.se/writings/linuxbook/html/shell-scripts.html

linux bash shell sh

26
推荐指数
3
解决办法
5万
查看次数

是否可以使用perl处理> 255的退出代码?

首先,在perl(也在这里)和Windows上找到关于退出代码的一些背景知识.

现在 - 当我在Windows上从perl脚本(我打开方法,qx/ open/ system/ exec/ IPC::Run等)执行另一个进程时:

是否有可能捕获范围之外的退出代码0- 255

在Windows上,进程可以返回一个完整的(已签名的)32位退出代码,并且返回0x8...0...某些东西并不常见,也就是说,某些COM错误代码或某些东西.

windows perl exit-code

4
推荐指数
1
解决办法
1351
查看次数

C++程序返回int类型,为什么返回-1返回255?

请注意,我正在运行一台Linux机器,虽然我不认为Windows(或其他)机器上的结果有所不同.

这是一个简单的问题 - C++程序通常返回32位int.如果我return -1,然后从终端打印结果,结果是255.

为什么是这样?我觉得链接这是我应该知道的,或者应该在很多年前注意到的事情 - 我以前从未真正使用过返回代码或以前想过它.

测试C++程序:

int main()
{
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

编译:

g++ main.cpp -o a.out
Run Code Online (Sandbox Code Playgroud)

跑:

./a.out
Run Code Online (Sandbox Code Playgroud)

检查结果:

echo $?
Run Code Online (Sandbox Code Playgroud)

结果:

255
Run Code Online (Sandbox Code Playgroud)

我本以期待看到2 ^ 32 - 1.

为什么结果255不是-1甚至是4294967295.(2^32 - 1)

c c++ operating-system integer return-value

4
推荐指数
2
解决办法
960
查看次数

标签 统计

exit-code ×2

operating-system ×2

shell ×2

bash ×1

c ×1

c++ ×1

integer ×1

linux ×1

perl ×1

return-value ×1

sh ×1

windows ×1