mistake in example in getrlimit(2)
here is example from getrlimit(2):
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>
#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \
} while (0)
int
main(int argc, char *argv[])
{
struct rlimit old, new;
struct rlimit *newp;
pid_t pid;
if (!(argc == 2 || argc == 4)) {
fprintf(stderr, "Usage: %s <pid> [<new-soft-limit> "
"<new-
exit(EXIT_
}
pid = atoi(argv[1]); /* PID of target process */
newp = NULL;
if (argc == 4) {
new.rlim_cur = atoi(argv[2]);
new.rlim_max = atoi(argv[3]);
newp = &new;
}
/* Set CPU time limit of target process; retrieve and display
previous limit */
if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)
errExit(
printf(
(long long) old.rlim_cur, (long long) old.rlim_max);
/* Retrieve and display new CPU time limit */
if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)
errExit(
printf("New limits: soft=%lld; hard=%lld\n",
(long long) old.rlim_cur, (long long) old.rlim_max);
exit(
}
As you can see, this program will always exit with EXIT_FAILURE status. It will be clearer and more correct to replace last line with "exit(EXIT_
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: manpages-dev 4.04-2
ProcVersionSign
Uname: Linux 4.4.0-47-generic x86_64
NonfreeKernelMo
ApportVersion: 2.20.1-0ubuntu2.4
Architecture: amd64
Date: Mon Dec 26 20:06:31 2016
Dependencies: manpages 4.04-2
InstallationDate: Installed on 2016-09-29 (87 days ago)
InstallationMedia: Ubuntu 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
PackageArchitec
SourcePackage: manpages
UpgradeStatus: No upgrade log present (probably fresh install)
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Ubuntu manpages Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
This question was originally filed as bug #1652652.
Can you help with this problem?
Provide an answer of your own, or ask Reverend Homer for more information if necessary.