Fix an issue where _IONBF would cause an overflow error

This commit is contained in:
Tom Almeida
2018-08-09 00:49:57 +08:00
parent deee825a1c
commit d219d57acb
2 changed files with 7 additions and 1 deletions
+5 -1
View File
@@ -99,7 +99,11 @@ impl FILE {
return true;
}
self.read = None;
self.write = Some((self.unget, self.unget, self.buf.len() - 1));
self.write = if self.buf.len() == 0 {
Some((0, 0, 0))
} else {
Some((self.unget, self.unget, self.buf.len() - 1))
};
return true;
}
pub fn write(&mut self, to_write: &[u8]) -> usize {
+2
View File
@@ -7,5 +7,7 @@ int main(int argc, char ** argv) {
ungetc('H', f);
char *in = malloc(30);
printf("%s\n", fgets(in, 30, f));
setvbuf(stdout, 0, _IONBF, 0);
printf("Hello\n");
return 0;
}