Mon 14 Oct 23:09:15 CEST 2024
This commit is contained in:
parent
7238a91977
commit
33e37fb872
46
user/test/writebig.c
Normal file
46
user/test/writebig.c
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
Copyright (C) 2016-2019 The University of Notre Dame
|
||||
This software is distributed under the GNU General Public License.
|
||||
See the file LICENSE for details.
|
||||
*/
|
||||
|
||||
/*
|
||||
A trivial user level program to try out basic system calls.
|
||||
*/
|
||||
|
||||
#include "library/syscalls.h"
|
||||
#include "library/string.h"
|
||||
#include "library/user-io.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
syscall_chdir("/");
|
||||
printf("got root\n");
|
||||
int fd = syscall_open_file("kevin", 2, 0);
|
||||
printf("got fd %d\n", fd);
|
||||
printf("writing to file...\n");
|
||||
for(int i = 0; i < 12; i++) {
|
||||
char buffer[4096] = {'a'+i};
|
||||
int n;
|
||||
n = syscall_object_write(fd, buffer, strlen(buffer));
|
||||
if(n < 0)
|
||||
break;
|
||||
printf("wrote %d chars: %s\n", n, buffer);
|
||||
}
|
||||
syscall_object_close(fd);
|
||||
fd = syscall_open_file("kevin", 1, 0);
|
||||
printf("reading file...\n");
|
||||
for (int i = 0; i < 12; i++) {
|
||||
char buffer[4096];
|
||||
int n;
|
||||
while((n = syscall_object_read(fd, buffer, 4096-1)) > 0) {
|
||||
buffer[n] = 0;
|
||||
printf("%s");
|
||||
flush();
|
||||
}
|
||||
}
|
||||
syscall_object_close(fd);
|
||||
syscall_process_exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user