From: Bernhard Fischer <rep.nop@aon.at>
To: buildroot@busybox.net
Subject: [Buildroot] nice() seems to have stopped working?
Date: Wed, 18 Oct 2006 22:35:12 +0200 [thread overview]
Message-ID: <20061018203512.GE5119@aon.at> (raw)
In-Reply-To: <45366DDA.9050504@lambsys.com>
On Wed, Oct 18, 2006 at 01:09:30PM -0500, David Lambert wrote:
>Since moving to this distribution, I notice that some of my programs
>that use nice() give errors when attempting to raise their priorities.
>In order to try and nail this down I wrote the following trivial program:
>
>#include <stdio.h>
>#include <stdlib.h>
>#include <string.h>
>#include <unistd.h>
>
>int main(int ac, char *av[])
>{
> int n = atoi(av[1]);
> printf("Trying nice(%d)\n", n);
> if (nice(n) < 0) { /* Attempt to change priority */
> perror("Nice failed to change priority");
> }
> else {
> printf("Success\n");
> }
> return 0;
>}
>
>
>Running this program as root provides the following output:
>
>/ # whoami
>root
>/ # niceTest 0
>Trying nice(0)
>Success
>/ # niceTest 1
>Trying nice(1)
>Success
>/ # niceTest -1
>Trying nice(-1)
>Nice failed to change priority: Success
>/ #
>
>Has anyone else experience this behavior?
>
>Best regards,
>
>Dave.
hm?
See man 2 nice
[snip]
NOTES
SUSv2 and POSIX.1-2001 specify that nice() should return the new nice
value. However, the Linux syscall and the nice() library function pro-
vided in older versions of (g)libc (earlier than glibc 2.2.4) return 0
on success. The new nice value can be found using getpriority(2).
Since glibc 2.2.4, nice() is implemented as a library function that
calls getpriority(2) to obtain the new nice value to be returned to the
caller. With this implementation, a successful call can legitimately
return -1. To reliably detect an error, set errno to 0 before the
call, and check its value when nice() returns -1.
PS: See uClibc/libc/sysdeps/linux/common/nice.c for the gory details.
HTH,
prev parent reply other threads:[~2006-10-18 20:35 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-18 18:09 [Buildroot] nice() seems to have stopped working? David Lambert
2006-10-18 20:35 ` Bernhard Fischer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061018203512.GE5119@aon.at \
--to=rep.nop@aon.at \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox