xref: /illumos-gate/usr/src/man/man3proc/Pread.3proc (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
143051d27SRobert Mustacchi.\"
243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
543051d27SRobert Mustacchi.\" 1.0 of the CDDL.
643051d27SRobert Mustacchi.\"
743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
843051d27SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1043051d27SRobert Mustacchi.\"
1143051d27SRobert Mustacchi.\"
1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
1343051d27SRobert Mustacchi.\"
1443051d27SRobert Mustacchi.Dd May 11, 2016
1543051d27SRobert Mustacchi.Dt PREAD 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm Pread ,
1943051d27SRobert Mustacchi.Nm Pread_string
2043051d27SRobert Mustacchi.Nd read data from a process
21ab618543SJohn Levon.Sh LIBRARY
2243051d27SRobert Mustacchi.Lb libproc
23ab618543SJohn Levon.Sh SYNOPSIS
2443051d27SRobert Mustacchi.In libproc.h
2543051d27SRobert Mustacchi.Ft ssize_t
2643051d27SRobert Mustacchi.Fo Pread
2743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
2843051d27SRobert Mustacchi.Fa "void *buf"
2943051d27SRobert Mustacchi.Fa "size_t nbytes"
3043051d27SRobert Mustacchi.Fa "uintptr_t address"
3143051d27SRobert Mustacchi.Fc
3243051d27SRobert Mustacchi.Ft ssize_t
3343051d27SRobert Mustacchi.Fo Pread_string
3443051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3543051d27SRobert Mustacchi.Fa "char *buf"
3643051d27SRobert Mustacchi.Fa "size_t nbytes"
3743051d27SRobert Mustacchi.Fa "uintptr_t address"
3843051d27SRobert Mustacchi.Fc
3943051d27SRobert Mustacchi.Sh DESCRIPTION
4043051d27SRobert MustacchiThe
4143051d27SRobert Mustacchi.Fn Pread
4243051d27SRobert Mustacchifunction reads data from the process handle
4343051d27SRobert Mustacchi.Fa P
4443051d27SRobert Mustacchistarting at
4543051d27SRobert Mustacchi.Fa address
4643051d27SRobert Mustacchiin the address space of the process and reads at most
4743051d27SRobert Mustacchi.Fa nbytes
4843051d27SRobert Mustacchiof data into
4943051d27SRobert Mustacchi.Fa buf
5043051d27SRobert Mustacchiand is logically analogous to the
5143051d27SRobert Mustacchi.Xr pread 2
5243051d27SRobert Mustacchifunction.
5343051d27SRobert Mustacchi.Pp
5472d3dbb9SYuri PankovFor live processes, this function is equivalent to reading from the /proc file
5572d3dbb9SYuri Pankovsystem
5643051d27SRobert Mustacchi.Sy as
5772d3dbb9SYuri Pankovfile for the process.
5872d3dbb9SYuri PankovFor core files and file handles, it reads and writes from the logical address
5972d3dbb9SYuri Pankovspace and not the corresponding offset of the file itself.
6072d3dbb9SYuri PankovFor example, a core file contains a sparse representation of the address space
6172d3dbb9SYuri Pankovof a crashed process and unmapped regions are not present in the file.
6272d3dbb9SYuri PankovHowever,
6343051d27SRobert Mustacchi.Fa address
6443051d27SRobert Mustacchistill refers to the virtual addresses that were present at run-time and
6543051d27SRobert Mustacchinot those in the core file.
6643051d27SRobert Mustacchi.Pp
6743051d27SRobert MustacchiThe
6843051d27SRobert Mustacchi.Fn Pread_string
6943051d27SRobert Mustacchifunction is similar to the
7043051d27SRobert Mustacchi.Fn Pread
7143051d27SRobert Mustacchifunction, except that it attempts to interpret
7243051d27SRobert Mustacchi.Fa address
7343051d27SRobert Mustacchias a null terminated character string and will stop reading characters
7443051d27SRobert Mustacchiinto
7543051d27SRobert Mustacchi.Fa buf
7643051d27SRobert Mustacchiif either
7743051d27SRobert Mustacchi.Fa nbytes
7872d3dbb9SYuri Pankovhas been read or a null terminator is encountered.
7972d3dbb9SYuri PankovThe resulting data in
8043051d27SRobert Mustacchi.Fa buf
8143051d27SRobert Mustacchiwill always be null terminated, even if no null terminator was found in
8243051d27SRobert Mustacchithe first
8343051d27SRobert Mustacchi.Fa nbytes
8443051d27SRobert Mustacchiof data.
8543051d27SRobert Mustacchi.Sh RETURN VALUES
8643051d27SRobert MustacchiUpon successful completion, the
8743051d27SRobert Mustacchi.Fn Pread
8843051d27SRobert Mustacchiand
8943051d27SRobert Mustacchi.Fn Pread_string
9043051d27SRobert Mustacchifunctions return a non-negative integer indicating the number of bytes
9172d3dbb9SYuri Pankovactually read.
9272d3dbb9SYuri PankovOtherwise, the functions return
9343051d27SRobert Mustacchi.Sy -1
9443051d27SRobert Mustacchiand set
9543051d27SRobert Mustacchi.Sy errno
9643051d27SRobert Mustacchito indicate the error.
9743051d27SRobert Mustacchi.Sh ERRORS
9843051d27SRobert MustacchiFor a full list of possible errors also see the
9943051d27SRobert Mustacchi.Sy DIAGNOSTICS
10043051d27SRobert Mustacchisection in
101*bbf21555SRichard Lowe.Xr proc 5
10243051d27SRobert Mustacchiand
10343051d27SRobert Mustacchithe
10443051d27SRobert Mustacchi.Sy ERRORS
10543051d27SRobert Mustacchisection in
10643051d27SRobert Mustacchi.Xr pread 2 .
10743051d27SRobert Mustacchi.Sh INTERFACE STABILITY
10843051d27SRobert Mustacchi.Sy Uncommitted
10943051d27SRobert Mustacchi.Sh MT-LEVEL
11043051d27SRobert MustacchiSee
11143051d27SRobert Mustacchi.Sy LOCKING
11243051d27SRobert Mustacchiin
11343051d27SRobert Mustacchi.Xr libproc 3LIB .
11443051d27SRobert Mustacchi.Sh SEE ALSO
11543051d27SRobert Mustacchi.Xr pread 2 ,
11643051d27SRobert Mustacchi.Xr libproc 3LIB ,
117*bbf21555SRichard Lowe.Xr proc 5
118