【发布时间】:2021-04-12 16:11:40
【问题描述】:
伪代码
我想要
print "<program name>: <error message>"而不是
print "<program name>: <error message>" exit program return <status>
编辑:我不能使用 argv[0](作为程序名称)自己写出消息,因为我正在编写一个库
【问题讨论】:
-
另一种方法是自己编写。这不是很困难。
-
问题在于获取程序本身的名称。我不能使用 argv[0],因为我正在使用 C 库。
-
您可以查看
err源代码以获取见解。它是开源的。或者您可以为您的库添加一个初始化函数,该函数将作为参数传递argv[0]。 -
假设您知道哪个程序产生了错误,您可能会发现
__FILE__、__LINE__和__FUNCTION__(如果支持)更有用,可以通过调用函数传递认为这是违法的。 -
@WeatherVane 我不能假设这一点,因为编译我的代码的其他人可能会以不同的方式命名程序。我不知道在编译时间之前派生调用名称的方法,但是 err() 以某种方式设法做到了。我觉得这是依赖于编译器的,因为
不是标准库的一部分...
标签: c error-handling exit