3373a58fb6
to be able to read and write large buffers below /proc. The buffers and file offsets are handled dynamically on the required buffer size at read, that is lseek(2) is used to determine this size. Large buffers at write are split at a delimeter into pieces and also lseek(2) is used to write each of them. Signed-off-by: Werner Fink <werner@suse.de>
81 lines
2.1 KiB
Groff
81 lines
2.1 KiB
Groff
'\" t -*- coding: UTF-8 -*-
|
||
.\"
|
||
.\" This file describes the readproc interface to the /proc filesystem
|
||
.\"
|
||
.\" Copyright 2018 Werner Fink <werner@suse.de>
|
||
.\"
|
||
.\" Permission is granted to make and distribute verbatim copies of this
|
||
.\" manual provided the copyright notice and this permission notice are
|
||
.\" preserved on all copies.
|
||
.\"
|
||
.\" Permission is granted to copy and distribute modified versions of this
|
||
.\" manual under the conditions for verbatim copying, provided that the
|
||
.\" entire resulting derived work is distributed under the terms of a
|
||
.\" permission notice identical to this one
|
||
.\"
|
||
.\" Formatted or processed versions of this manual, if unaccompanied by
|
||
.\" the source, must acknowledge the copyright and authors of this work.
|
||
.\"
|
||
.TH PROCIO 3 "16 January 2018" "Linux Manpage" "Linux Programmer's Manual"
|
||
.SH NAME
|
||
fprocopen \- stream open functions on files below /proc/##
|
||
.SH SYNOPSIS
|
||
.B #define _GNU_SOURCE
|
||
.br
|
||
.B #include <stdio.h>
|
||
.br
|
||
.B #include <proc/procio.h>
|
||
.sp
|
||
.BI "FILE *fprocopen(const char *path, const char *mode);
|
||
|
||
.SH DESCRIPTION
|
||
|
||
The
|
||
.B fprocopen
|
||
function opens files below
|
||
.I /proc/##
|
||
whose name is the string to by path and associates a stream with it.
|
||
The argument
|
||
.I mode
|
||
points to a string beginning with one of the following sequences
|
||
.TP
|
||
.B r
|
||
Open a file below
|
||
.I /proc/##
|
||
for reading even large buffers. The stream is positioned at
|
||
the beginning of the file.
|
||
.TP
|
||
.BR w [ <del> ]
|
||
Open a file below
|
||
.I /proc/##
|
||
for writing even large buffers. The optional delimeter character
|
||
can be one of the follwoing
|
||
.BR '\ ' ,\ ',' ,\ '.' ,\ and\ ':'
|
||
where the default is the colon
|
||
.BR ',' .
|
||
This allows to split very large input lines into pieces at this
|
||
delimeter and write each of them to the opened file below
|
||
.IR /proc/## .
|
||
.TP
|
||
.B e
|
||
The underlying file descriptor will be closed if you use any
|
||
of the ‘exec...’ functions within your code.
|
||
.PP
|
||
The internal API allows to use stdio functions to read and write
|
||
large buffers below
|
||
.IR /proc/## .
|
||
.PP
|
||
.SH SEE ALSO
|
||
.BR fopen (3),
|
||
.br
|
||
.BR fopencookie (3)
|
||
.br
|
||
.BR setvbuf (3)
|
||
.br
|
||
.BR lseek (3)
|
||
.PP
|
||
.SH COPYRIGHT
|
||
2018 Werner Fink,
|
||
.SH AUTHOR
|
||
Werner Fink <werner@suse.de>
|