Index: examples/io_uring.c
===================================================================
--- examples/io_uring.c	(revision 3a3b2b9a8278a64646d13ae6ec46cde7aaed814e)
+++ examples/io_uring.c	(revision 276ae57e1a71ef65a6fcc967ee08e33e8ad9a738)
@@ -33,4 +33,6 @@
       io_uring_prep_readv(sqe, fd, &iov, 1, 0);
 
+      sqe->user_data = data;
+
       /* tell the kernel we have an sqe ready for consumption */
       io_uring_submit(&ring);
@@ -38,9 +40,19 @@
       /* wait for the sqe to complete */
       int ret = io_uring_wait_cqe(&ring, &cqe);
-      printf("%d\n", ret);
+      
+      /* read and process cqe event */
+      if(ret == 0) {
+            char * out = cqe->user_data;
+            signed int len = cqe->res;
+            io_uring_cqe_seen(&ring, cqe);
 
-      /* read and process cqe event */
-      printf("%s", data);
-      io_uring_cqe_seen(&ring, cqe);
+            if(len > 0) {
+                  printf("%.*s", len, out);
+            }
+      }
+      else {
+            printf("%d\n", ret);
+            io_uring_cqe_seen(&ring, cqe);
+      }
 
       io_uring_queue_exit(&ring);
