我在哪里可以找到可能由dvd+rw-mediainfo返回的退出代码集?



运行在redhat 7.9上。我将使用由apache的ProcBuilder或java 11的ProcessBuilder包装的dvd+rw-mediainfo来查询插入光驱的媒体状态。我想了解有关dvd+rw-mediainfo可能产生的退出值的信息。根据经验,我已经确定251表示没有磁盘插入驱动器,130表示没有与命令参数匹配的驱动器。还有什么我应该知道的出口密码吗?我看了看我在https://sources.debian.org/src/dvd+rw-tools/7.1-3/dvd+rw-mediainfo.cpp/上找到的c源代码,但那里没有返回代码的定义。包含的h文件并不多。我无法在我的系统中找到stddefine .h,我有点怀疑这可能是该位置。

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>

我不太擅长c++(严格来说是java),但我希望找到一个定义退出代码的h文件。它们没有在命令的手册页条目中列出。当我看到在源代码中调用exit时,我不清楚这些值是在哪里定义的。

if ((err=cmd.transport(READ,inq,36)))
sperror ("INQUIRY",err),
exit (FATAL_START(errno));

我没有看到errno的值设置在哪里。我也找不到FATAL_START的定义。还有一个退出调用使用了一个我在任何地方都找不到定义的常量。

exit (FATAL_START(EINVAL));

关于errno的值,请参阅errno.h(以及其中包含的其他文件),在基于redhat的系统中,您可以在/usr/include/errno.h中找到它,由glibc-headers包提供。

查看到源代码的链接,宏FATAL_START似乎在头文件传输中定义。Hxx,它只设置第7位:

#define FATAL_START(er) (0x80|(er))

那么,退出码251 = 128 + 123将对应如下:

#define ENOMEDIUM       123     /* No medium found */

130 = 128 + 2对应如下:

#define ENOENT           2      /* No such file or directory */

相关内容

  • 没有找到相关文章

最新更新