08-22-2009
What Jim means is that
errno is undefined after a successful library call. You should only call
perror() immediately after a failing call.
As a matter of fact, the glibc implementation of
perror() calls some other functions such as
dup(),
fdopen() that modify
errno, even if
perror() itself always succeed.
I would personally expect that clean library code doesn't expose their mess to outside. But we cannot complain, as POSIX/SUS allows such behavior.
Cheers,
Loïc
--
My Blog:
Loïc OnStage
“UNIX is simple. It just takes a genius to understand its simplicity.” - Dennis Ritchie
10 More Discussions You Might Find Interesting
1. Programming
In Tru64 Unix, the 'errno' variable is not thread safe.
Could anybody help me about how to make it thread safe or how to check 'errno' in a Multithreaded program ????
The Programming process is like this.
There are some definite number of threads having their own task.
There is one... (2 Replies)
Discussion started by: S.Vishwanath
2 Replies
2. Programming
Hello,
I need to make a lib with pthread, when I run my make file all is good. But when I run my test program, I test errno in the begining and is already set to 251. Is it normal ??? What can I modify in my Makefile to have errno set to 0 ???
Thanks
$make
gcc -D_REENTRANT -shared -fpic... (3 Replies)
Discussion started by: dts
3 Replies
3. Programming
How should I use errno in a c program and what info does it have .
I am working with directories and files.
So can any one tell me How to access errno?I am using the stat() function on \etc directory and I am alble to access only the half of the directories.I am not able to access other half and... (6 Replies)
Discussion started by: vijlak
6 Replies
4. Programming
Hey, Can I assume that for certain function calls, errno can never be set to a certain value.
More specifically, can I assume that for if the stat function call fails, the errno can never be or "No space left on device."
I am assuming that a read function cannot fail because of no space... (5 Replies)
Discussion started by: the_learner
5 Replies
5. Programming
Dear all,
I use perror in order to print an error message to the standar error. For example
if a C program is called without its two necessary command line parameters
then :
if (argc != 3)
{
perror("use: ./myProgram <source file> <target file>\n");
return 1;
}
Now the... (2 Replies)
Discussion started by: dariyoosh
2 Replies
6. UNIX for Dummies Questions & Answers
I have following problem with this code..
First time trough the main loop.....
perror gives ....blocked signal:success(all other times gives illlegal seek)
Should every time trought the main loop be success??
And the perror otside of main loop...didn't change mask:success
That line of code... (2 Replies)
Discussion started by: joker40
2 Replies
7. Programming
i am trying to use the perror function:
something like
perror("WRONG!!!");
but when i see the message in the terminal, it comes out like
WRONG!!! : Success
How can i change it to
WRONG!!! : WRONG!!!
well i just want to have my own custom message for the part after the colon... (1 Reply)
Discussion started by: omega666
1 Replies
8. Programming
from mmap manpage I get it's errors discription:
The addresses specified by the range [off, off + len) are invalid
for filedes.
How could I trigger a ENXIO ? anyone can input the code?
Lei (3 Replies)
Discussion started by: yanglei_fage
3 Replies
9. Linux
Dear all,
CentOS 6
After executing "yum update -y" command I am facing this error. Please help me out.
thanks in advance. Full error & error code is given as follow:
... (7 Replies)
Discussion started by: saqlain.bashir
7 Replies
10. AIX
Hi, I need to look at a recent copy of /usr/include/errno.h from AIX 7.2 to check some symbols. In particular, I'm curious if it defines EOWNERDEAD and ENOTRECOVERABLE. Can someone who has access to 7.2 please check for me? Thanks! (1 Reply)
Discussion started by: topcat
1 Replies
LEARN ABOUT DEBIAN
bup-margin
bup-margin(1) General Commands Manual bup-margin(1)
NAME
bup-margin - figure out your deduplication safety margin
SYNOPSIS
bup margin [options...]
DESCRIPTION
bup margin iterates through all objects in your bup repository, calculating the largest number of prefix bits shared between any two
entries. This number, n, identifies the longest subset of SHA-1 you could use and still encounter a collision between your object ids.
For example, one system that was tested had a collection of 11 million objects (70 GB), and bup margin returned 45. That means a 46-bit
hash would be sufficient to avoid all collisions among that set of objects; each object in that repository could be uniquely identified by
its first 46 bits.
The number of bits needed seems to increase by about 1 or 2 for every doubling of the number of objects. Since SHA-1 hashes have 160 bits,
that leaves 115 bits of margin. Of course, because SHA-1 hashes are essentially random, it's theoretically possible to use many more bits
with far fewer objects.
If you're paranoid about the possibility of SHA-1 collisions, you can monitor your repository by running bup margin occasionally to see if
you're getting dangerously close to 160 bits.
OPTIONS
--predict
Guess the offset into each index file where a particular object will appear, and report the maximum deviation of the correct answer
from the guess. This is potentially useful for tuning an interpolation search algorithm.
--ignore-midx
don't use .midx files, use only .idx files. This is only really useful when used with --predict.
EXAMPLE
$ bup margin
Reading indexes: 100.00% (1612581/1612581), done.
40
40 matching prefix bits
1.94 bits per doubling
120 bits (61.86 doublings) remaining
4.19338e+18 times larger is possible
Everyone on earth could have 625878182 data sets
like yours, all in one repository, and we would
expect 1 object collision.
$ bup margin --predict
PackIdxList: using 1 index.
Reading indexes: 100.00% (1612581/1612581), done.
915 of 1612581 (0.057%)
SEE ALSO
bup-midx(1), bup-save(1)
BUP
Part of the bup(1) suite.
AUTHORS
Avery Pennarun <apenwarr@gmail.com>.
Bup unknown- bup-margin(1)