AsmGrader 0.0.0
Loading...
Searching...
No Matches
asmgrader::linux Namespace Reference

Classes

struct  Fork
 
struct  Pipe
 
class  Signal
 Value type to behave as a linux signal. More...
 

Typedefs

using SignalHandlerT = void (*)(int)
 

Functions

std::error_code make_error_code (int err=errno)
 
Expected< ssize_t > write (int fd, const std::string &data)
 writes to a file descriptor. See write(2) returns success/failure; logs failure at debug level
 
Expected< std::string > read (int fd, size_t count)
 reads fromm a file descriptor. See read(2) returns success/failure; logs failure at debug level
 
Expected close (int fd)
 closes a file descriptor. See close(2) returns success/failure; logs failure at debug level
 
Expected kill (pid_t pid, int sig)
 see kill(2) returns success/failure; logs failure at debug level
 
Expected execve (const std::string &exec, const std::vector< std::string > &args, const std::vector< std::string > &envp)
 args and envp do NOT need to have an extra NULL element; this is added for you. see execve(2) returns success/failure; logs failure at debug level
 
Expected< Forkfork ()
 see dup(2) and ForkExpected returns result from enum; logs failure at debug level
 
Expected< int > open (const std::string &pathname, int flags, mode_t mode=0)
 see open(2) returns success/failure; logs failure at debug level
 
Expected< off_t > lseek (int fd, off_t offset, int whence)
 see lseek(2) returns success/failure; logs failure at debug level
 
Expected dup2 (int oldfd, int newfd)
 see dup(2) returns success/failure; logs failure at debug level
 
Expected< int > ioctl (int fd, unsigned long request, void *argp)
 see ioctl(2) returns success/failure; logs failure at debug level
 
Expected< int > fcntl (int fd, int cmd, std::optional< int > arg=std::nullopt)
 see fcntl(2) returns success/failure; logs failure at debug level
 
Expected< siginfo_t > waitid (idtype_t idtype, id_t id, int options=WSTOPPED|WEXITED)
 see waitid(2) returns success/failure; logs failure at debug level
 
Expected raise (int sig)
 see raise(3) returns success/failure; logs failure at debug level
 
Expected< Pipepipe2 (int flags=0)
 see pipe2(2) returns success/failure; logs failure at debug level
 
Expected< long > ptrace (int request, pid_t pid=0, AddrT addr=NULL, DataT data=NULL)
 see ptrace(2) returns success/failure; logs failure at debug level
 
Expected< struct ::stat > stat (const std::string &pathname)
 see stat(2)
 
Expected< pid_t > getpid ()
 see getpid(2) and getppid(2) these functions "cannot fail" according to the manpage. These wrappers are provided just for consistency.
 
Expected< pid_t > getppid ()
 
Expected< SignalHandlerTsignal (Signal sig, SignalHandlerT handler)
 

Typedef Documentation

◆ SignalHandlerT

using asmgrader::linux::SignalHandlerT = void (*)(int)

Function Documentation

◆ close()

Expected asmgrader::linux::close ( int fd)
inline

closes a file descriptor. See close(2) returns success/failure; logs failure at debug level

◆ dup2()

Expected asmgrader::linux::dup2 ( int oldfd,
int newfd )
inline

see dup(2) returns success/failure; logs failure at debug level

◆ execve()

Expected asmgrader::linux::execve ( const std::string & exec,
const std::vector< std::string > & args,
const std::vector< std::string > & envp )
inline

args and envp do NOT need to have an extra NULL element; this is added for you. see execve(2) returns success/failure; logs failure at debug level

◆ fcntl()

Expected< int > asmgrader::linux::fcntl ( int fd,
int cmd,
std::optional< int > arg = std::nullopt )
inline

see fcntl(2) returns success/failure; logs failure at debug level

◆ fork()

Expected< Fork > asmgrader::linux::fork ( )
inline

see dup(2) and ForkExpected returns result from enum; logs failure at debug level

◆ getpid()

Expected< pid_t > asmgrader::linux::getpid ( )
inline

see getpid(2) and getppid(2) these functions "cannot fail" according to the manpage. These wrappers are provided just for consistency.

◆ getppid()

Expected< pid_t > asmgrader::linux::getppid ( )
inline

◆ ioctl()

Expected< int > asmgrader::linux::ioctl ( int fd,
unsigned long request,
void * argp )
inline

see ioctl(2) returns success/failure; logs failure at debug level

◆ kill()

Expected asmgrader::linux::kill ( pid_t pid,
int sig )
inline

see kill(2) returns success/failure; logs failure at debug level

◆ lseek()

Expected< off_t > asmgrader::linux::lseek ( int fd,
off_t offset,
int whence )
inline

see lseek(2) returns success/failure; logs failure at debug level

◆ make_error_code()

std::error_code asmgrader::linux::make_error_code ( int err = errno)
inline

◆ open()

Expected< int > asmgrader::linux::open ( const std::string & pathname,
int flags,
mode_t mode = 0 )
inline

see open(2) returns success/failure; logs failure at debug level

◆ pipe2()

Expected< Pipe > asmgrader::linux::pipe2 ( int flags = 0)
inline

see pipe2(2) returns success/failure; logs failure at debug level

◆ ptrace()

Expected< long > asmgrader::linux::ptrace ( int request,
pid_t pid = 0,
AddrT addr = NULL,
DataT data = NULL )
inline

see ptrace(2) returns success/failure; logs failure at debug level

◆ raise()

Expected asmgrader::linux::raise ( int sig)
inline

see raise(3) returns success/failure; logs failure at debug level

◆ read()

Expected< std::string > asmgrader::linux::read ( int fd,
size_t count )
inline

reads fromm a file descriptor. See read(2) returns success/failure; logs failure at debug level

◆ signal()

Expected< SignalHandlerT > asmgrader::linux::signal ( Signal sig,
SignalHandlerT handler )
inline

◆ stat()

Expected< struct ::stat > asmgrader::linux::stat ( const std::string & pathname)
inline

see stat(2)

◆ waitid()

Expected< siginfo_t > asmgrader::linux::waitid ( idtype_t idtype,
id_t id,
int options = WSTOPPED | WEXITED )
inline

see waitid(2) returns success/failure; logs failure at debug level

◆ write()

Expected< ssize_t > asmgrader::linux::write ( int fd,
const std::string & data )
inline

writes to a file descriptor. See write(2) returns success/failure; logs failure at debug level