问题标签 [errno]
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.
ruby - 如何在 Ruby 中创建文件
我正在尝试创建一个新文件,但事情似乎也没有像我预期的那样工作。这是我尝试过的:
根据我在网上阅读的所有内容,所有这些都应该有效,但其中的每一个都给了我这个:
这发生在 IRB 以及 Ruby 脚本中。我错过了什么?
android - Android 2.1 文件 i/o:pread 失败并显示 errno 22(EINVAL,无效参数)
我正在使用 open(2)、pread(2) 和 pwrite(2) 进行简单的文件复制操作,如下所示(代码简化了一点)。我的问题是 ::pread(2) 函数无法返回 -1,返回 [errno=22]。请注意,源文件和目标文件都放在 SD 卡上。这个问题出现在Android 2.1(API level <=7,模拟器和真机)上,在Android 2.3(API level 9)上运行没有问题。我的代码有问题还是内核/stdlib 中的错误?
另请注意,如果使用 read(2)、write(2) 或切换到流式 API(fread(3)、fwrite(3))可以正常工作。奇怪的。
c - 简单的消息传递应用程序...获取 errno 14:错误地址
我正在使用套接字在 C 中编写一个简单的消息传递应用程序。当我使用 functionrecvfrom
时,它返回-1
并设置errno = 14
which is Bad address
(我在最后打印)。
奇怪的是它仍然从套接字读取并得到正确的消息。也就是说,除了该错误之外,该应用程序运行良好且符合预期。
我的问题是:为什么你认为我会收到这个错误?我想不出任何理由。我inet_pton
用来设置peer->sin_addr
但我得到了同样的错误。
c++ - 这段代码不是线程安全的,不是吗?
我看到一段这样的代码,想知道这是否是线程安全的:
我不认为这是线程安全的,对吗?
但是我看到有人写这样的代码,所以我不确定......
谁能帮我解释一下,谢谢...
c - 我的库应该在错误的指针输入上处理 SIGSEGV 吗?
我正在编写一个以 FILE * 指针作为输入的小型库。
如果我立即检查这个 FILE * 指针并发现它导致了段错误,那么处理信号、设置 errno 并优雅退出是否更正确;或者什么都不做并使用调用者安装的信号处理程序,如果他有一个?
流行的智慧似乎是“图书馆永远不应该导致崩溃”。但我的想法是,既然这个特定的信号肯定是调用者的错,那么我不应该试图向他隐藏那个信息。他可能安装了自己的处理程序,以自己的方式对问题做出反应。可以使用 errno 检索相同的信息,但设置 SIGSEGV 的默认配置是有充分理由的,并且通过强制调用者处理他的错误,或通过崩溃和保护他免受进一步损害,向上传递信号尊重这一理念.
您是否同意这种分析,或者您认为在这种情况下处理 SIGSEGV 有什么令人信服的理由?
ruby-on-rails - 编译 CSS 资源时出错
我一直在尝试在 CentOS 6 上部署 Rail 3.1.1 应用程序
这是我得到的错误
我很感激帮助。
c - Errno : 13 关于在 proc 条目上使用 fopen
我正在尝试编写由可加载内核模块创建的 /proc 文件。我正在使用 fopen() 打开文件进行写入,但得到 errno : 13 (permission denied)。
关于如何克服这个问题的任何建议?
谢谢。
c++ - 使用 Select() 并返回“无错误”错误
我在使用 Select() 来确定何时可以在套接字上读取数据时遇到了一些问题。我希望我连接的套接字没有数据,因此 select 返回超时或 0 值。相反,我得到 -1 值,消息是“错误:没有错误”。
我的代码与此示例非常相似:https ://beej.us/guide/bgnet/html/multi/selectman.html
我在这里通读了几次 select() 文档:msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx
任何想法,将不胜感激。谢谢!
规格:C++、Win-XP、Microsoft Visual C++ 2010
c++ - socket 很少返回 -1 (errno 97)
我正在运行一个 C++ 程序,它尝试以下代码:
然而,上面偶尔会返回-1(可能在超过 3000 次运行中返回 1 次)并且 errno 显示:
这怎么可能?运行这条线应该一遍又一遍地产生相同的结果吗?
c - linux和osx中不同的realloc行为
我有这个简单的 C 程序:
它只分配了 4 MiB 的内存,并且 10 次尝试通过重新分配将其大小翻倍。对 realloc 的简单调用与另一个 1 MiB 块的分配和一些随机写入交织在一起,以最小化堆分配器“技巧”。在具有 16 GiB RAM 的 Ubuntu linux 机器上,我有以下输出:
因此,所有高达 4 GiB 的重新分配似乎都成功了。但是,当我通过此命令将内核虚拟内存记帐模式设置为 2(始终检查,从不过度使用)时:
然后输出变为:
重定位在 2 GiB 时失败。所报告的当时计算机的空闲内存top
已经在 5 GiB 左右,所以这是合理的,因为 realloc 必须始终分配连续的内存块。现在,让我们看看在同一台机器上的 VirtualBox 内的 Mac OS X Lion 上运行相同的程序时会发生什么,但只有 8 GiB 的虚拟 RAM:
在这里,该程序在第一次重新分配到 8 MiB 时存在问题。这在我看来很奇怪,因为当时报告的虚拟计算机的可用内存在top
7 GiB 左右。
然而,事实是 realloc 实际上成功了,因为它的返回值是非 NULL (注意tmp_pointer
程序终止之前的值)。但是对 realloc 的同样成功调用也将 errno 设置为非零!现在,处理这种情况的正确方法是什么?
我应该忽略 errno 并只检查 realloc 的返回值吗?但是接下来的一些基于 errno 的错误处理程序呢?这可能不是一个好主意。
当 realloc 返回非 NULL 指针时,我应该将 errno 设置为零吗?这似乎是一个解决方案。但是......我看过这里:http ://austingroupbugs.net/view.php?id=374 。我不知道这个资源有多权威,但是关于realloc,这点很清楚:
“......标准也明确指出,除非记录在案,否则无法在成功时检查 errno,......”
如果我理解正确,它会说:是的,当 realloc 返回 NULL 时,您可以查看 errno,否则不能!这就是说,我可以将 errno 重置为零吗?从来不看?我发现很难理解和决定什么是坏的,什么是好的。
我仍然不明白为什么 realloc 首先设置这个 errno。它的“无效参数”值是什么意思?它没有在手册页中列出,他们只提到 errno ENOMEM(通常是 12 号)。会不会出什么问题?这个简单程序中的某些东西是否会在 Mac OS X 下导致这种行为?可能是的,......所以,两个主要问题是:
- 怎么了?和
- 如何纠正它?更准确地说:如何改进这个简单的程序,以便 Mac OS X 上的 realloc 在成功时将 errno 保持为零?