X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=doc%2Fuserprog.texi;h=884b757c59bafdc56d1990ecc7e67cedc8814c8d;hb=7a3a3477d2001ebb9b8c73e4785f16d47788f52c;hp=72e8d8177a07b4641b3762e275b6e71e740b0a40;hpb=042fc8b99ded3537ec4c27074a0c5dff5b569a04;p=pintos-anon diff --git a/doc/userprog.texi b/doc/userprog.texi index 72e8d81..884b757 100644 --- a/doc/userprog.texi +++ b/doc/userprog.texi @@ -405,9 +405,9 @@ conditions (usually errors). @item SYS_exec @itemx pid_t exec (const char *@var{cmd_line}) Runs the executable whose name is given in @var{cmd_line}, passing any -given arguments, and returns the new process's program id (pid). If -there is an error loading this program, may return pid -1, which -otherwise should not be a valid id number. +given arguments, and returns the new process's program id (pid). Must +return pid -1, which otherwise should not be a valid program id, if +there is an error loading this program. @item SYS_join @itemx int join (pid_t @var{pid}) @@ -456,7 +456,13 @@ than end of file). Fd 0 reads from the keyboard using @itemx int write (int @var{fd}, const void *@var{buffer}, unsigned @var{size}) Write @var{size} bytes from @var{buffer} to the open file @var{fd}. Returns the number of bytes actually written, or -1 if the file could -not be written. Fd 1 writes to the console. +not be written. + +Fd 1 writes to the console. Your code to write to the console should +write all of @var{buffer} in one call to @func{putbuf}, at least as +long as @var{size} is not bigger than a few hundred bytes. Otherwise, +lines of text output by different processes may end up interleaved on +the console, confusing both human readers and our grading scripts. @item SYS_seek @itemx void seek (int @var{fd}, unsigned @var{position})