diff options
author | max99x <max99x@gmail.com> | 2011-07-23 05:49:48 +0300 |
---|---|---|
committer | max99x <max99x@gmail.com> | 2011-07-23 05:49:48 +0300 |
commit | 136756f734ecf14a28736900075d561e981e973e (patch) | |
tree | cf33472ea6550c6486ec7722facf34d98a16a51d /tests/unistd/truncate.c | |
parent | 586d229ec311daa5e89781eb6da822989e677789 (diff) |
Added unistd tests; fixed a lot of unistd bugs and deficiencies.
Diffstat (limited to 'tests/unistd/truncate.c')
-rw-r--r-- | tests/unistd/truncate.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/unistd/truncate.c b/tests/unistd/truncate.c new file mode 100644 index 00000000..18920976 --- /dev/null +++ b/tests/unistd/truncate.c @@ -0,0 +1,68 @@ +#include <stdio.h> +#include <errno.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <string.h> + +int main() { + struct stat s; + int f = open("/towrite", O_WRONLY); + int f2 = open("/toread", O_RDONLY); + printf("f2: %d\n", f2); + + fstat(f, &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("ftruncate(10): %d\n", ftruncate(f, 10)); + printf("errno: %d\n", errno); + fstat(f, &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("ftruncate(4): %d\n", ftruncate(f, 4)); + printf("errno: %d\n", errno); + fstat(f, &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("ftruncate(-1): %d\n", ftruncate(f, -1)); + printf("errno: %d\n", errno); + fstat(f, &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("truncate(2): %d\n", truncate("/towrite", 2)); + printf("errno: %d\n", errno); + stat("/towrite", &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("truncate(readonly, 2): %d\n", truncate("/toread", 2)); + printf("errno: %d\n", errno); + stat("/toread", &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + printf("\n"); + + printf("ftruncate(readonly, 4): %d\n", ftruncate(f2, 4)); + printf("errno: %d\n", errno); + fstat(f2, &s); + printf("st_size: %d\n", s.st_size); + memset(&s, 0, sizeof s); + errno = 0; + + return 0; +} |