| #include <stdio.h>  | 
 | #include <sys/types.h> | 
 | #include <sys/stat.h> | 
 | #include <fcntl.h> | 
 | #include <arch/arch.h> | 
 | #include <unistd.h> | 
 | #include <errno.h> | 
 | #include <dirent.h> | 
 | #include <stdlib.h> | 
 | #include <string.h> | 
 |  | 
 | #define WRITE_AMOUNT 4096 | 
 | int main(int argc, char *argv[])  | 
 | {  | 
 | 	int retval; | 
 | 	char wbuf[WRITE_AMOUNT]; | 
 | 	if (argc < 2) { | 
 | 		printf("Appends some shit to the end of a text file\n"); | 
 | 		printf("Usage: appender FILENAME\n"); | 
 | 		return -1; | 
 | 	} | 
 |  | 
 | 	int fd = open(argv[1], O_RDWR); | 
 | 	if (!fd) { | 
 | 		printf("Unable to open %s\n", argv[1]); | 
 | 		return -1; | 
 | 	} | 
 |  | 
 | 	for (int i = 0; i < WRITE_AMOUNT; i += 4) { | 
 | 		wbuf[i + 0] = 'X'; | 
 | 		wbuf[i + 1] = 'M'; | 
 | 		wbuf[i + 2] = 'E'; | 
 | 		wbuf[i + 3] = ' '; | 
 | 	} | 
 | 	 | 
 | 	lseek(fd, 0, SEEK_END); | 
 | 	retval = write(fd, wbuf, WRITE_AMOUNT); | 
 | 	printf("Tried to write %d bytes, got retval: %d\n", WRITE_AMOUNT, retval); | 
 | 	return 0; | 
 | } |