<p>I'd like to be able to track file read/writes of specific program invocations.  No information about the actual transactions is required, just the file names involved.</p>

<p>Is there a cross platform solution to this?  <br />
What are various platform specific methods?  <br />
On Linux I know there's strace/ptrace (if there are faster methods that'd be good too). <br />I think on mac os there's ktrace.  <br />
What about Windows?</p>

<p>Also, it would be amazing if it would be possible to block (stall out) file accesses until some later time.</p>

<p>Thanks!</p>

On Windows you can use the command line tool
Handle
or the GUI version
Process Explorer
to see which files a given process has open.
If you're looking for a get this information in your own program you can use the
IFS kit
from Microsoft to write a file system filter. The file system filter will show all file system operation for all process. File system filters are used in AV software to scan files before they are open or to scan newly created files.