problem about errno-Collection of common programming errors
modelnine
c++ exception g++ errno
When using C++ exceptions to transport errno state, the compiled code that gets generated by g++ (4.5.3) for code such as the following#include <cerrno> #include <stdexcept> #include <string>class oserror : public std::runtime_error { private:static std::string errnotostr(int errno_); public:explicit oserror(int errno_) :std::runtime_error(errnotostr(errno_)) {} };void test() {throw oserror(errno); }is rather unexpectedly (on Linux, x86_64).type _Z4testv, @function…movl
Gonzalo
errno httperf
Does anyone know what this httperf error means? Is this having a negative effect on my tests?httperf: connection failed with unexpected error 105
Ryan
c glibc errno
I am experiencing an unexpected value of errno when using perror with glibc. When an non-existent file is specified as arg[1] it prints Error: 2 ( which isENOENT) as expected. However when the perror line below is uncommented it throws error 22 (EINVAL) no matter what I pass it. Can anyone please explain why this is getting set?EDIT: Looks like this is some sort of Eclipse bug. The IDE seems to be causing perror to throw some sort of error, the program works perfectly on the command line, a
gspr
multithreading haskell ghc errno
The documentation for getErrno reads:Get the current value of errno in the current thread. It is unclear to me whether this means the current OS thread. In particular, does the (threaded) runtime fetch and stash away errno whenever a Haskell thread is migrated from one OS thread to another?This question seems related, but it is unclear to me whether what is said there pertains to OS or Haskell threads.
Stéphane
c windows errno getlasterror
I’m confused as to the exact relationship between GetLastError() and errno. Are they the same numerical values, or something completely different? How do I know which one I should check?And if I want to convert an error code to a string for debugging, can I use FormatMessageA() interchangeably with strerror_s()?Lastly, is it true that WSAGetLastError() always returns the same as GetLastError(), or could they both return different values?
joemoe
c# c mono pinvoke errno
Is it possible to access the “errno” variable in C# when P/Invoking? This is similar to Win32 GetLastError().
Levon
c gdb errno
I am looking at the following code in an SO “Low Quality” post to make sure the sample works, and my question is why can’t I print errno’s value?#include <stdio.h> #include <stdlib.h> #include <errno.h>int main(){FILE *fp;errno = 0;fp=fopen(“Not_exist.txt”,”r”);if(fp == NULL && errno == ENOENT)perror(“file not exist”);return 0; }Here is what happens when I try to print the value:(gdb) p errno Cannot find thread-local variables on this target (gdb)I can print fp’s value
User123abc
c error-handling shared-libraries signals errno
I’m writing a small library that takes a FILE * pointer as input. If I immediately check this FILE * pointer and find it leads to a segfault, is it more correct to handle the signal, set errno, and exit gracefully; or to do nothing and use the caller’s installed signal handler, if he has one?The prevailing wisdom seems to be “libraries should never cause a crash.” But my thinking is that, since this particular signal is certainly the caller’s fault, then I shouldn’t attempt to hide that informat
rwallace
c++ memory errno
If you use set_new_handler and your handler function is called, is errno guaranteed to be set, the way it is on a return of 0 from malloc? Or is it better to use strerror(ENOMEM)? errno works on Microsoft C++ and GCC, but that still leaves the question of whether it’s guaranteed.
Michael Smith
c unit-testing errno eintr
In short, how do you unit test an error condition such as EINTR on a system call.One particular example I’m working on, which could be a case all by itself, is whether it’s necessary to call fclose again when it returns EOF with (errno==EINTR). The behavior depends on the implementation of fclose:// Given an open FILE *fp while (fclose(fp)==EOF && errno==EINTR) {errno = 0; }This call can be unsafe if fp freed when EINTR occurs. How can I test the error handling for when (errno==EINTR)?
R..
c language-lawyer errno
Per 7.5,[errno] expands to a modifiable lvalue175) that has type int, the value of which is set to a positive error number by several library functions. It is unspecified whether errno is a macro or an identifier declared with external linkage. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name errno, the behavior is undefined.175) The macro errno need not be the identifier of an object. It might expand to a modifiable lvalue
limp_chimp
c overflow errno
I’m trying to make use of errno to detect if I’ve performed an operation that causes overflow. However, although I’ve written a function which deliberately overflows, errno == ERANGE is false. What’s going on here?Here’s the code:#include <stdio.h> #include <errno.h>int main(int argc, char* argv[]) {unsigned char c = 0;int i;for (i = 0; i< 300; i++) {errno = 0;c = c + 1;if (errno == ERANGE) {// we have a range errorprintf(“Overflow. c = %u\n”, c);} else {printf(“No error. c = %u\n
kmccoy
c++ sqlite3 errno
I am using the sqlite3 C++ api. After running int rc = sqlite3_exec(db, pSQL, 0, 0, 0);which returns a rc result of SQLITE_OK.Additionally, I have tested for errno != 0. The result of cout << strerror(errno) << endl is consistently: No such file or directoryIn other words, I know that sqlite3 has its own set of “Return Codes” (i.e. SQLITE_OK). However, does sqlite3 use errno codes correctly/consistently? That is, if another part of my application is using the global errno variabl
skaffman
bash errno
Is there a command-line tool that will take a symbolic errno such as EINVAL and print the corresponding string, Invalid argument?I would like to avoid having to find that EINVAL is value 22 on my system and then using$ perror 22.Ideally I could write something like$ errorcommand EINVALInvalid argument$
fonet
c shell errno execvp
hi if i’m passing an unknown command to execvp i’m getting this error in the errno : “no such file or directory” when i should get this error: “command not found”how can i get the second error?
Web site is in building