问题标签 [strerror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
352 浏览

c - 为什么 strcpy(strerror(errno),"Hello") 不复制“Hello”,但 {ptr=strerror(errno);strcpy(ptr,"Hello");} 复制?

请解释以下程序中发生了什么。

我检查了strerror(errno)程序开始和结束时返回的地址,并确认它每次都返回相同的地址。然后一旦确定这一点,在第一种情况下,我开始分配相同的地址ptr,然后将字符串复制"Hello"到它使用strcpy().In case II,我尝试"Hello"直接复制到由.我返回的地址strerror(errno)。我有奇怪的发现。如果您解释以下内容,我将不胜感激:

万一,我复制"Hello"ptr并且它在随后printf()ptr打印中成功Hello。但是,当我传递strerror(errno)而不是传递ptr到时printf(),它会打印旧的错误消息。怎么可能ptr指向一条消息但strerror(errno)指向另一条消息时两个地址相同?我验证了两个地址相同,我希望复制"Hello"ptr应该与将其复制到返回相同strerror(errno)。为了双重检查这种差异,然后我尝试"Hello"直接复制到,strerror(errno)但这次也不起作用它会打印相同的旧错误字符串。但令人惊讶的是,在这一点上,我再次验证了地址ptrstrerror(errno)确实一直都一样!!这怎么可能?如果它们相同,它们如何指向不同的字符串?一个到"Hello"另一个到旧的自定义错误消息?

请解释这背后的原因。

输出

0 投票
2 回答
1339 浏览

c - 为什么strerror()的结果不能返回

根据手册页strerror(errnum)返回 a char *,但我收到以下警告:

当我运行它时出现段错误./temp 0但不是运行它时,我得到一个段错误./temp 256

有人可以解释为什么会发生这种情况以及如何解决它(如果可能的话)?

温度.c

0 投票
7 回答
8467 浏览

c - 如何在 C 中打印 errno 的符号名称?

我可以使用perror()strerror()打印属于 的“人类可读”错误消息errno,但如果我还想打印 的符号名称(例如“ EAGAIN”)errno怎么办?

任何方便的功能或宏来做到这一点?

更新:根据下面接受的答案及其评论的想法,附上我最终编写的代码:

0 投票
1 回答
202 浏览

linux - 无法使用 mkdir 理解 perror 的消息

我有一段代码可以从一个字符串创建一个目录,这里的cwd是一个给出目录路径的字符串。不幸的是,有一个错误不允许我创建目录,所以我像这样使用perror()strerror()函数来获取错误的符号名称。

我的问题是perror()strerror()给出错误提示“不存在这样的文件或目录”。我在这里查看了 mkdir 的手册页,但所述错误不在手册页上给出的错误列表中。难道我做错了什么?

0 投票
1 回答
417 浏览

c - VxWorks 上 strerror_r 的最大消息大小

VxWorks 提供了一个 strerror_r 版本,它只接受两个参数。

cURL 提到MAXERRSTR_SIZE.

vxworks 风格的 strerror_r() 确实使用了我们传递给函数的缓冲区。缓冲区大小应至少为 rtsold.h 中定义的 MAXERRSTR_SIZE (150)

但我似乎无法在发行版的任何地方找到文件 rtsold.h。

复制到缓冲区的消息的最大大小是多少?是否在某处定义了#define 或整数常量?

0 投票
0 回答
905 浏览

c - 在 waitpid 之后使用 strerror(errno)。strerror 的预期结果是什么?

我尝试使用 strerror(errno) 获取 waitpid 结果字符串。
我检查了两种情况下的状态字符串:

我从 strerror 得到以下打印:

孩子跑步时:

孩子终止:

waitpid 之后 strerror(errno) 的预期结果字符串应该是什么。如果孩子正常退出/终止,那么“无子进程”是什么意思?如果子进程正在运行/子进程终止,waitpid 的预期返回值应该是多少?

在我的例子中,strerror 返回:

使用的代码:

输出/输出:

无睡眠的 O/P:

0 投票
2 回答
1192 浏览

c - 如何在当前语言环境中使用 strerror_l?

我正在修复一些用于strerror(非线程安全)多线程的 Linux 代码。我发现strerror_r并且strerror_l都是线程安全的。由于不同的定义strerror_r(取决于_GNU_SOURCE它的定义不同)我想使用较新的strerror_l函数,但是我应该如何获取locale_t当前语言环境的对象?我没有使用iconv或其他任何东西,只是普通的 libc,而且我看不到如何获得“默认语言环境”对象(我不在乎以什么语言打印错误,我只想要一个人类可读的字符串。 )

0 投票
2 回答
145 浏览

c++ - 如何在 C++ 中使用错误控制函数?

我的源代码如下:

我想显示我的error字符串“除零”!但输出是:

salam没有这样的文件或目录

请帮助我如何在c++中使用errnoand ?errorstring

0 投票
2 回答
5428 浏览

c - 获取recv函数返回的错误号

如何获取recv()in socket 通信返回的错误号或错误字符串,recv()返回-1为读取大小,这意味着发生了一些错误。我想知道错误的具体原因。所以我怎么能得到那个。

0 投票
2 回答
900 浏览

c++ - Expected initializer before 'strerror'

I am trying to make a function like this which will print out the error details associated with it's error number, but i am getting the error error: expected initializer before 'strerror'. Here is the code

How to solve this problem ? Thanks