PKUOS - Pintos
Pintos source browser for PKU Operating System course
rox-simple.c
Go to the documentation of this file.
1/** Ensure that the executable of a running process cannot be
2 modified. */
3
4#include <syscall.h>
5#include "tests/lib.h"
6#include "tests/main.h"
7
8void
9test_main (void)
10{
11 int handle;
12 char buffer[16];
13
14 CHECK ((handle = open ("rox-simple")) > 1, "open \"rox-simple\"");
15 CHECK (read (handle, buffer, sizeof buffer) == (int) sizeof buffer,
16 "read \"rox-simple\"");
17 CHECK (write (handle, buffer, sizeof buffer) == 0,
18 "try to write \"rox-simple\"");
19}
static struct intq buffer
Stores keys from the keyboard and serial port.
Definition: input.c:7
int open(const char *file)
Definition: syscall.c:103
int write(int fd, const void *buffer, unsigned size)
Definition: syscall.c:121
int read(int fd, void *buffer, unsigned size)
Definition: syscall.c:115
#define CHECK(SUCCESS,...)
Takes an expression to test for SUCCESS and a message, which may include printf-style arguments.
Definition: lib.h:29
void test_main(void)
Ensure that the executable of a running process cannot be modified.
Definition: rox-simple.c:9