gpt4 book ai didi

linux - 如何测试STDIN读取错误

转载 作者:太空狗 更新时间:2023-10-29 11:09:13 25 4
gpt4 key购买 nike

我有一个 Linux 程序(目前在汇编中)有一个检查:如果从 STDIN 读取失败,显示一条错误消息。问题是我不知道如何测试这个条件,如何执行程序以使其无法从 STDIN 读取。 IT 必须在没有 STDIn 的情况下运行,或者 STDIN 可以在程序启动之前以某种方式关闭?

最佳答案

是的,您可以关闭文件描述符,这会触发错误。使用 bash 进行测试:

$ strace ./a.out 0<&-
execve("./a.out", ["./a.out"], [/* 32 vars */]) = 0
[ Process PID=4012 runs in 32 bit mode. ]
read(0, 0xffe13fec, 1) = -1 EBADF (Bad file descriptor)

您还可以引发手册页中列出的其他错误,例如:

$ strace ./a.out 0</tmp
execve("./a.out", ["./a.out"], [/* 32 vars */]) = 0
[ Process PID=4056 runs in 32 bit mode. ]
read(0, 0xffed5c0c, 1) = -1 EISDIR (Is a directory)

关于linux - 如何测试STDIN读取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439841/

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