#include #include #include #include int main(int argc, char *argv[]) { struct io_uring_sqe *sqe; struct io_uring ring; unsigned long *ptr = NULL; char buf[16384]; char fname[32]; int fd[4]; int i; for (i = 0; i < 4; i++) { sprintf(fname, "/dev/shm/test.%d", i); fd[i] = open(fname, O_RDWR | O_CREAT, 0644); if (fd[i] < 0) { perror("open"); return 1; } } io_uring_queue_init(32, &ring, 0); for (i = 0; i < 32; i++) { unsigned long off = 16384 * (i / 4); int index = i & 3; sqe = io_uring_get_sqe(&ring); io_uring_prep_write(sqe, fd[index], buf, sizeof(buf), off); } io_uring_submit(&ring); usleep(1000); *ptr = 0x1234; }