public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "adhemerval.zanella at linaro dot org" <sourceware-bugzilla@sourceware.org> To: glibc-bugs@sourceware.org Subject: [Bug libc/29147] getconf: Wrong values for symbolic constants defined in limits.h Date: Thu, 26 May 2022 17:22:39 +0000 [thread overview] Message-ID: <bug-29147-131-hUqY6g2J2H@http.sourceware.org/bugzilla/> (raw) In-Reply-To: <bug-29147-131@http.sourceware.org/bugzilla/> https://sourceware.org/bugzilla/show_bug.cgi?id=29147 --- Comment #7 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> --- (In reply to cquike from comment #5) > > POSIX standard also defines that for getconf each configuration variable > > shall be determined as if it were obtained by calling the function from > > which it is defined to be available (either fpathconf, sysconf, or confstr) > > [1]. > > > > And for fpathconf, POSIX only defines a handfull of symbolic constants an > > implementation should support (which _POSIX_PIPE_BUF is not listed). Also > > for _POSIX_PIPE_BUF, it means the 'Maximum number of bytes that is > > guaranteed > > to be atomic when writing to a pipe'. > > > > Maybe I am interpreting it wrongly, but I see that getconf provides > variables that are defined via fpathconf, sysconf, confstr _or_ limits.h. > The third bullet under "system_var" says literally "The names of the > symbolic constants listed under the headings ``Maximum Values'' and > ``Minimum Values'' in the description of the <limits.h> header" ([1]). And > indeed _POSIX_PIPE_BUF is listed under "Minimum values" in the description > of limits.h ([3]) and not under fpathconf, as you correctly mention ([2]). Another issue is POSIX is not clear how the 'Maximum' and 'Minimum' values should be obtained, but getting the POSIX defined values seems rational. > > In fact, consider the output of this small program: > > #include <limits.h> > #include <stdio.h> > > int main() > { > printf("_POSIX_PIPE_BUF: %d\n", _POSIX_PIPE_BUF); > } > > $ ./a.out > _POSIX_PIPE_BUF: 512 > > and the output of getconf: > > $ getconf _POSIX_PIPE_BUF / > 4096 > > which are, in my opinion, in contradiction. By the way, it also highlights > yet another problem with the current implementation: for _POSIX_PIPE_BUF it > shouldn´t be needed to provide a path, since it is a symbolic constant. > > > > for the users perspective what really matters is the > > implementation-defined > > For most applications I agree with you. That means that POSIX conformant > applications applications are most interested on querying fpathconf(fd, > _PC_PIPE_BUF) or the equivalent getconf PIPE_BUF /path . However _strictly_ > conformant applications ([4]) should not rely on the implementation > supporting a limit larger than _POSIX_PIPE_BUF. It is for those applications > where this constant might be useful. Right, it seems that other system do return the limits.h value (Solaris 11, AIX 7.2, and MacOSX) so it seems that it would be good to have the same behavior. > > > And I don't think this will make getconf more POSIX compliant, since POSIX > > does not state POSIXLY_CORRECT as an affecting environment variable. > > Yes, you are right. > > [1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/getconf.html > [2] https://pubs.opengroup.org/onlinepubs/9699919799/functions/fpathconf.html > [3] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html > [4] > https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap02. > html#tag_02_02_01 -- You are receiving this mail because: You are on the CC list for the bug.
next prev parent reply other threads:[~2022-05-26 17:22 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-14 23:05 [Bug libc/29147] New: " cquike at arcor dot de 2022-05-14 23:05 ` [Bug libc/29147] getconf: " cquike at arcor dot de 2022-05-14 23:12 ` cquike at arcor dot de 2022-05-18 19:47 ` adhemerval.zanella at linaro dot org 2022-05-23 20:02 ` cquike at arcor dot de 2022-05-23 20:47 ` adhemerval.zanella at linaro dot org 2022-05-24 0:57 ` cquike at arcor dot de 2022-05-24 7:49 ` schwab@linux-m68k.org 2022-05-26 17:22 ` adhemerval.zanella at linaro dot org [this message] 2022-05-27 14:31 ` adhemerval.zanella at linaro dot org 2022-07-29 22:10 ` cquike at arcor dot de
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=bug-29147-131-hUqY6g2J2H@http.sourceware.org/bugzilla/ \ --to=sourceware-bugzilla@sourceware.org \ --cc=glibc-bugs@sourceware.org \ /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: linkBe 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; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).