| /* 7.t |
| - Write overlapping the file size rlimit boundary: should be a short |
| write. (7.t) |
| - Write at the file size rlimit boundary: should give EFBIG. (I think |
| the spec requires that you do NOT deliver SIGXFSZ in this case, where |
| you would do so for sync IO.) (7.t) |
| - Special case: a write of zero bytes at or beyond the file size rlimit |
| boundary must return success. (7.t) |
| */ |
| |
| #include <sys/resource.h> |
| #include <signal.h> |
| |
| void SET_RLIMIT(long long limit) |
| { |
| struct rlimit rlim; |
| int res; |
| |
| /* Seems that we do send SIGXFSZ, but hard to fix... */ |
| signal(SIGXFSZ, SIG_IGN); |
| rlim.rlim_cur = limit; assert(rlim.rlim_cur == limit); |
| rlim.rlim_max = limit; assert(rlim.rlim_max == limit); |
| |
| res = setrlimit(RLIMIT_FSIZE, &rlim); assert(res == 0); |
| } |
| |
| #define LIMIT 8192 |
| #define FILENAME "testdir/rwfile" |
| |
| #include "common-7-8.h" |