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