Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

copyoutstr(9r) [osf1 man page]

copyoutstr(9r)															    copyoutstr(9r)

NAME
copyoutstr - General: Copies a null-terminated string from a kernel address space to a user address space SYNOPSIS
int copyoutstr( char *kernel_src, char *user_dest, int maxlength, int *lencopied ); ARGUMENTS
Specifies the address in kernel space of the null-terminated string to be copied. Specifies the address in user space to copy the null- terminated string to. Specifies the maximum number of bytes to copy. Specifies the actual length of the string copied. DESCRIPTION
The copyoutstr routine copies a specified null-terminated string from the protected kernel address space to the unprotected user address space. CAUTIONS
If the string being copied is not null-terminated, copyoutstr copies maxlength bytes into the user address space. RETURN VALUES
Upon successful completion, copyoutstr returns the value 0 (zero) and the actual length of the string copied in lencopied. Otherwise, it can return the following errors: The address in kernel space that you specified in the kernel_src argument cannot be accessed. The length of the string exceeds the maxlength value. SEE ALSO
Routines: copyinstr(9r) copyoutstr(9r)

Check Out this Related Man Page

COPY(9) 						   BSD Kernel Developer's Manual						   COPY(9)

NAME
copy, copyin, copyout, copystr, copyinstr, copyoutstr -- kernel space to/from user space copy functions SYNOPSIS
#include <sys/types.h> #include <sys/systm.h> int copyin(const void *uaddr, void *kaddr, size_t len); int copyout(const void *kaddr, void *uaddr, size_t len); int copystr(const void *kfaddr, void *kdaddr, size_t len, size_t *done); int copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done); int copyoutstr(const void *kaddr, void *uaddr, size_t len, size_t *done); int copyin_proc(struct proc *p, const void *uaddr, void *kaddr, size_t len); int copyout_proc(struct proc *p, const void *kaddr, void *uaddr, size_t len); int ioctl_copyin(int ioctlflags, const void *src, void *dst, size_t len); int ioctl_copyout(int ioctlflags, const void *src, void *dst, size_t len); DESCRIPTION
The copy functions are designed to copy contiguous data from one address to another. All but copystr() copy data from user-space to kernel- space or vice-versa. The copy routines provide the following functionality: copyin() Copies len bytes of data from the user-space address uaddr in the current process to the kernel-space address kaddr. copyout() Copies len bytes of data from the kernel-space address kaddr to the user-space address uaddr in the current process. copystr() Copies a NUL-terminated string, at most len bytes long, from kernel-space address kfaddr to kernel-space address kdaddr. If the done argument is non-NULL, the number of bytes actually copied, including the terminating NUL, is returned in *done. copyinstr() Copies a NUL-terminated string, at most len bytes long, from user-space address uaddr in the current process to kernel-space address kaddr. If the done argument is non-NULL, the number of bytes actually copied, including the terminating NUL, is returned in *done. copyoutstr() Copies a NUL-terminated string, at most len bytes long, from kernel-space address kaddr to user-space address uaddr in the current process. If the done argument is non-NULL, the number of bytes actually copied, including the terminating NUL, is returned in *done. copyin_proc() Like copyin(), except it operates on the address space of the process p. copyout_proc() Like copyout(), except it operates on the address space of the process p. ioctl_copyin() Like copyin(), except it operates on kernel adresses when the FKIOCTL flag is passed in ioctlflags from the ioctl call. ioctl_copyout() Like copyout(), except it operates on kernel adresses when the FKIOCTL flag is passed in ioctlflags from the ioctl call. RETURN VALUES
The copy functions return 0 on success or EFAULT if a bad address is encountered. In addition, the copystr(), copyinstr(), and copyoutstr() functions return ENAMETOOLONG if the string is longer than len bytes. SEE ALSO
fetch(9), store(9) BSD
August 28, 2005 BSD
Man Page