--- ./Modules/_posixsubprocess.c_orig	2025-06-04 01:58:32.796529283 -0400
+++ ./Modules/_posixsubprocess.c	2025-06-04 02:02:10.820325213 -0400
@@ -428,7 +428,13 @@
         proc_fd_dir = NULL;
     else
 #endif
+#if defined(_AIX)       
+        char fd_dir_path[PATH_MAX]; 
+        snprintf(fd_dir_path, sizeof(fd_dir_path), "/proc/%ld/fd", (long)getpid()); 
+        proc_fd_dir = opendir(fd_dir_path);
+#else
         proc_fd_dir = opendir(FD_DIR);
+#endif
     if (!proc_fd_dir) {
         /* No way to get a list of open fds. */
         _close_range_except(start_fd, -1, fds_to_keep, fds_to_keep_len,
