鱼C论坛

 找回密码
 立即注册
查看: 1316|回复: 2

[已解决]bash 语法中<&-的输出

[复制链接]
发表于 2023-9-17 11:08:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
add.exe是一个将两数之和cout出来的由cpp编译而来的文件
在bash脚本中输入:
$ ./add <&-
输出是:
1471690622
请问这个输出的含义是什么?
最佳答案
2023-9-17 11:08:34
这个输出 "1471690622" 是一个整数值,它代表了程序的退出状态码(exit status code)。在 Unix/Linux 系统中,程序执行完毕后会返回一个状态码,其中 0 表示程序正常退出,而其他非零值则表示程序运行出现了错误或者异常。

在这个例子中,由于输入重定向符 < 已经关闭了标准输入流(stdin),所以当程序尝试从 stdin 中读取数据时会遇到错误,因此程序产生了一个非零的退出状态码,并将该状态码作为输出结果。注意,由于这个状态码是由当前时间戳生成的,因此每次运行程序的退出状态码都可能不同。

总之,这个输出值表示程序执行异常并返回了一个非零退出状态码。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-17 11:08:30 | 显示全部楼层
这个输出的含义是将文件描述符0(标准输入)关闭后,执行了add.exe程序并输出了1471690622。

在bash脚本中,"<&-"表示关闭标准输入。当执行"./add <&-"命令时,文件描述符0(标准输入)被关闭,add.exe程序无法从标准输入中读取数据。因此,add.exe程序会直接执行并将结果输出到标准输出,即文件描述符1。输出的1471690622是add.exe程序计算后的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-17 11:08:34 | 显示全部楼层    本楼为最佳答案   
这个输出 "1471690622" 是一个整数值,它代表了程序的退出状态码(exit status code)。在 Unix/Linux 系统中,程序执行完毕后会返回一个状态码,其中 0 表示程序正常退出,而其他非零值则表示程序运行出现了错误或者异常。

在这个例子中,由于输入重定向符 < 已经关闭了标准输入流(stdin),所以当程序尝试从 stdin 中读取数据时会遇到错误,因此程序产生了一个非零的退出状态码,并将该状态码作为输出结果。注意,由于这个状态码是由当前时间戳生成的,因此每次运行程序的退出状态码都可能不同。

总之,这个输出值表示程序执行异常并返回了一个非零退出状态码。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 10:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表