Unix 获取已完成进程的最后一个工作目录
是否可以获取已完成进程的最后一个工作目录?例如:我们已经分叉了一个进程,等待它完成,获得了一个退出代码和一些输出,现在我们想检查该进程所在的最后一个工作目录 我们的应用程序是用OCaml编写的,下面是大致相同的代码:Unix 获取已完成进程的最后一个工作目录,unix,ocaml,Unix,Ocaml,是否可以获取已完成进程的最后一个工作目录?例如:我们已经分叉了一个进程,等待它完成,获得了一个退出代码和一些输出,现在我们想检查该进程所在的最后一个工作目录 我们的应用程序是用OCaml编写的,下面是大致相同的代码: open Core.Std let pinfo = Unix.create_process ~prog:"/bin/sh" ~args:["-c"; "cd ~/foo/bar"] in let open Unix.Process_info in let _ = Unix.wai
open Core.Std
let pinfo = Unix.create_process ~prog:"/bin/sh" ~args:["-c"; "cd ~/foo/bar"] in
let open Unix.Process_info in
let _ = Unix.waitpid pinfo.pid in
(* what was the last working directory of pinfo.pid? *)
任何建议,无论是否针对OCaml,都将不胜感激!另外,一个同时在MacOSX和Linux上工作的解决方案更可取。我认为Linux内核没有提供这些信息。如果应用程序是一个黑匣子,您可能会使用
LD\u预加载
或strace
来跟踪chdir()
调用