Issue #9842 has been updated by Usaku NAKAMURA.


POSIX is the standard which should be respected obviously, but Ruby is operating not only on POSIX environment.

Real needs is not revealing the items which getconf (or etc.) provides but the information along to a user's purpose, isn't it?
Whether do you want the information along to some use cases or getconf itself?
If the latter case, you can simply call getconf via system, `` or etc.
If the former case, I believe that you can determine a natural interface.

----------------------------------------
Feature #9842: system configuration variables (sysconf(), confstr(), pathconf() and fpathconf())
https://bugs.ruby-lang.org/issues/9842#change-46762

* Author: Akira Tanaka
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
How about providing methods to obtain system configuration variables?

POSIX defines sysconf(), confstr(), pathconf() and fpathconf().
I implemented following methods in ext/etc.

* Etc.sysconf(name)
* Etc.confstr(name)
* IO.pathconf(name)
* IO#pathconf(name)

POSIX defines some names.
Various operating sysmtems define additional names.

They can be used as follows:

```
Etc.sysconf(Etc::SC_ARG_MAX) #=> 2097152
Etc.sysconf(Etc::SC_NPROCESSORS_ONLN) #=> 4
Etc.confstr(Etc::CS_PATH) #=> "/bin:/usr/bin"
Etc.confstr(Etc::CS_GNU_LIBC_VERSION) #=> "glibc 2.18"
IO.pathconf("/", Etc::PC_NAME_MAX) #=> 255
open("/") {|f| p f.pathconf(Etc::PC_TIMESTAMP_RESOLUTION) } #=> 1
```

I implemented them in ext/etc because I interpreted "etc" as
system configuration.

Any idea?


---Files--------------------------------
sysconf-confstr-pathconf.patch (13 KB)
sysconf-confstr-fpathconf.patch (12.1 KB)


-- 
https://bugs.ruby-lang.org/