// SPDX-License-Identifier: GPL-2.0 /* * Author: SeongJae Park <sj@kernel.org> */ #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> #pragma GCC diagnostic push #if __GNUC__ >= 11 && __GNUC_MINOR__ >= 1 /* Ignore read(2) overflow and write(2) overread compile warnings */ #pragma GCC diagnostic ignored "-Wstringop-overread" #pragma GCC diagnostic ignored "-Wstringop-overflow" #endif void write_read_with_huge_count(char *file) { int filedesc = open(file, O_RDWR); char buf[25]; int ret; printf("%s %s\n", __func__, file); if (filedesc < 0) { fprintf(stderr, "failed opening %s\n", file); exit(1); } write(filedesc, "", 0xfffffffful); perror("after write: "); ret = read(filedesc, buf, 0xfffffffful); perror("after read: "); close(filedesc); } #pragma GCC diagnostic pop int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage: %s <file>\n", argv[0]); exit(1); } write_read_with_huge_count(argv[1]); return 0; }