ast.3 revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian Maeder.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
7abd0c58a5ce51db13f93de82407b2188d55d298Christian Maeder.ie \\$3 .ft \\$1
c00adad2e9459b422dee09e3a2bddba66b433bb7Christian Maeder.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian Maeder.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
4ef2a978e66e2246ff0b7f00c77deb7aabb28b8eChristian Maeder.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder.de EX \" start example
ccf3de3d66b521a260e5c22d335c64a48e3f0195Christian Maeder.ta 1i 2i 3i 4i 5i 6i
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder.de EE \" end example
b1bd8688a1ce545444792a307412711c2c61df5fChristian Maederast \- miscellaneous libast support
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederchar* astconf(const char* \fIname\fP, const char* \fIpath\fP, const char* \fIvalue\fP);
81946e2b3f6dde6167f48769bd02c7a634736856Christian MaederAst_confdisc_t astconfdisc(Ast_confdisc_t new_notify);
2ac1742771a267119f1d839054b5e45d0a468085Christian Maedervoid astconflist(Sfio_t* stream, const char* path, int flags);
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maederoff_t astcopy(int \fIrfd\fP, int \fIwfd\fP, off_t \fIn\fP);
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maederint astquery(int \fIfd\fP, const char* \fIformat\fP , ...);
81946e2b3f6dde6167f48769bd02c7a634736856Christian Maeder.SH DESCRIPTION
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederis a string interface to the
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder.IR confstr (2),
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.IR pathconf (2),
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.IR sysconf (2)
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederthen the configuration parameter value for
b1bd8688a1ce545444792a307412711c2c61df5fChristian Maederconfiguration parameters may consult the
b1bd8688a1ce545444792a307412711c2c61df5fChristian MaederIn this case if
b1bd8688a1ce545444792a307412711c2c61df5fChristian Maederthen it must exist.
36c6cc568751e4235502cfee00ba7b597dae78dcChristian MaederThe string return value for
5ba383b1607c20c57e14324e72cee2c789436d5fChristian Maederremains unchanged until the next
7c35990c03276d1e675ea6f4ba38f47081620d77Christian Maederthen a valid string is always returned;
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian Maederis returned if
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederhas no configuration value.
81946e2b3f6dde6167f48769bd02c7a634736856Christian MaederThis simplifies the programming interface:
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederif (!strcmp(astconf("PATH_RESOLVE", NiL, NiL), "logical"))
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian Maeder /* the logical way ... */
5ba383b1607c20c57e14324e72cee2c789436d5fChristian Maederthen the configuration parameter value for
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederis returned if the value cannot be set.
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian MaederThe paradigm is:
55ea7f4cb33abac6a8d539741e457cf686d1f26cChristian Maederuniverse = astconf("UNIVERSE", 0, "att");
2118d66b6aa3c90458925019c9b2fb986e2b2aabChristian Maederastconf("UNIVERSE", 0, universe);
36c6cc568751e4235502cfee00ba7b597dae78dcChristian MaederThe settable configuration names are:
d48085f765fca838c1d972d2123601997174583dChristian Maederviewpathing is enabled,
35597678f1c9da703de8d0b6b66ea63247ebe884Christian MaederThis is an alternative to the
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.L PATH_RESOLVE
35597678f1c9da703de8d0b6b66ea63247ebe884Christian Maederif symbolic links are followed during file tree traversal,
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederif symbolic links are not followed during file tree traversal,
5ba383b1607c20c57e14324e72cee2c789436d5fChristian Maeder.L metaphysical
5ba383b1607c20c57e14324e72cee2c789436d5fChristian Maederif symbolic links are followed at the top level during file tree traversal.
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian MaederThese correspond to the generic
2ac1742771a267119f1d839054b5e45d0a468085Christian Maedercommand options.
81946e2b3f6dde6167f48769bd02c7a634736856Christian MaederThis configuration parameter controls the
d93bbbec133697cc79d59f9d7cc8e97458976c15Christian Maedersetting on machines that support it (e.g., Pyramid).
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederalso controls the behavior of some commands like
35597678f1c9da703de8d0b6b66ea63247ebe884Christian Maedervalues may also be set and queried, but these should probably have
35597678f1c9da703de8d0b6b66ea63247ebe884Christian Maedersome form of vendor prefix to avoid being stomped by future standards.
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maeder.L astconfdisc
d48085f765fca838c1d972d2123601997174583dChristian Maederregisters a discipline function
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maederint (*notify)(const char* \fIname\fP, const char* \fIpath\fP, const char* \fIvalue\fP);
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maederthat is called just before the configuration parameter
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederthen the configuration parameter value is not changed.
793945d4ac7c0f22760589c87af8e71427c76118Christian Maeder.L astconflist
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maederlists the current configuration names and values of
10397bcc134edbcfbe3ae2c7ea4c6080036aae22Christian Maederthen \f5"/"\fP is used where appropriate.
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederthen all configuration parameters are listed.
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederlists the readonly configuration parameters and
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederlists the settable configuration parameters.
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederlists the settable configuration parameters in a form that can be
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maedersnarfed for input to the
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.IR getconf (1)
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederefficiently copies up to
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederbytes from the file descriptor
c2dead95fafd7ca36d06ddf07606a1292ead6d8aChristian Maederto the file descriptor
d9953bc9d3d8aa7290bf6d3c2c86b84c984a0f09Christian MaederThe actual number of bytes copied is returned; \-1 is returned on error.
10397bcc134edbcfbe3ae2c7ea4c6080036aae22Christian Maederis 0 then an optimal number of bytes (with respect to both
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederis used to do the transfer.
2ac1742771a267119f1d839054b5e45d0a468085Christian MaederSome implementations may bypass user buffer copies usually required by the
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.IR read (2)- write (2)
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.IR sfprintf (3)
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maederprompt specified by
0f0aa53f11a0d1ab08c76428b9de73db5b17c977Christian Maeder.I "format, .\|.\|."
27912d626bf179b82fcb337077e5cd9653bb71cfChristian Maederto the controlling terminal and reads a response from the controlling terminal.
27912d626bf179b82fcb337077e5cd9653bb71cfChristian MaederOffirmative response returns
d9953bc9d3d8aa7290bf6d3c2c86b84c984a0f09Christian Maederor quit response returns
35597678f1c9da703de8d0b6b66ea63247ebe884Christian Maederis greater than
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederis called on a quit response.
14a1af9d9909dc47dc7fee6b0170b7ac0aef85daChristian MaederThe responses will eventually be locale specific.
d9953bc9d3d8aa7290bf6d3c2c86b84c984a0f09Christian Maederreturns the number of rows in
7c35990c03276d1e675ea6f4ba38f47081620d77Christian Maederand the number of columns
2ac1742771a267119f1d839054b5e45d0a468085Christian Maederfor the terminal file descriptor
2ac1742771a267119f1d839054b5e45d0a468085Christian MaederIf the number of rows or columns cannot be determined or if
d9953bc9d3d8aa7290bf6d3c2c86b84c984a0f09Christian Maederis not a terminal then
35597678f1c9da703de8d0b6b66ea63247ebe884Christian Maedermethods fail then the environment variable
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederis used to set
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederand the environment variable
9fb0db7f56cbb44c3df49552c04afc881267b84eChristian Maederis used to set
2ac1742771a267119f1d839054b5e45d0a468085Christian Maeder.SH "SEE ALSO"
bb13d067514a3f474166f345e098b81f3de11dbeChristian Maedergetconf(1), confstr(2), mmap(2), pathconf(2), read(2), sysconf(2), write(2)