是否可以获取已完成流程的最后一个工作目录?例如:我们已经分叉了一个进程,等待它完成,获得了退出代码和一些输出,现在我们想要检查进程所在的最后一个工作目录。
我们的应用程序是用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.waitpid pinfo.pid in
(* what was the last working directory of pinfo.pid? *)
任何建议,无论是否具体为OCaml,都将不胜感激!此外,最适合在MacOSX和Linux上运行的解决方案。
答案 0 :(得分:0)
我不认为Linux内核会提供这些信息。如果应用程序是黑匣子,您可以使用LD_PRELOAD
或strace
跟踪chdir()
来电。