1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Author: SeongJae Park <sj@kernel.org> 4 */ 5 6#include <fcntl.h> 7#include <stdlib.h> 8#include <unistd.h> 9#include <stdio.h> 10 11#pragma GCC diagnostic push 12#if __GNUC__ >= 11 && __GNUC_MINOR__ >= 1 13/* Ignore read(2) overflow and write(2) overread compile warnings */ 14#pragma GCC diagnostic ignored "-Wstringop-overread" 15#pragma GCC diagnostic ignored "-Wstringop-overflow" 16#endif 17 18void write_read_with_huge_count(char *file) 19{ 20 int filedesc = open(file, O_RDWR); 21 char buf[25]; 22 int ret; 23 24 printf("%s %s\n", __func__, file); 25 if (filedesc < 0) { 26 fprintf(stderr, "failed opening %s\n", file); 27 exit(1); 28 } 29 30 write(filedesc, "", 0xfffffffful); 31 perror("after write: "); 32 ret = read(filedesc, buf, 0xfffffffful); 33 perror("after read: "); 34 close(filedesc); 35} 36 37#pragma GCC diagnostic pop 38 39int main(int argc, char *argv[]) 40{ 41 if (argc != 2) { 42 fprintf(stderr, "Usage: %s <file>\n", argv[0]); 43 exit(1); 44 } 45 write_read_with_huge_count(argv[1]); 46 47 return 0; 48} 49