StupidBeauty
Read times:1231Posted at:Mon Nov 7 21:10:29 2011

转载:Re: Issue with Open(unit,STATUS='SCRATCH', iostat = ios)

微软提供的用来生成临时文件的API只支持同时存在最多26个临时文件。

http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2011-01/msg00611.html

亮点:

I found the reason for the second problem - thanks to the information for the third. The algorithm used by Microsoft to generate temporary files allows only 26 files ("a" to "z") - or at least only 26 files which exist at any given time.

From: http://msdn.microsoft.com/en-us/library/34wc6k1f%28v=VS.80%29.aspx

"_mktemp preserves base and replaces the first trailing X with an alphabetic character. _mktemp replaces the following trailing X's with a five-digit value; this value is a unique number identifying the calling process, or in multithreaded programs, the calling thread."

1) the number of scratch file is it voluntarily limited to 26 ? and
why ?


First question: Yes. Second question: No idea - ask Microsoft. Educated guess: One never needs more than 26 scratch files (really!) and the implementation is easy as the one can fit the 5-digit process numbers into the remaining space. (POSIX has basename + 6 "X", where the X are replaced mktemp.)

I think gfortran has to work around this stupid implementation choice.

转载:Re: Issue with Open(unit,STATUS='SCRATCH', iostat = ios)

微软提供的用来生成临时文件的API只支持同时存在最多26个临时文件。

http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2011-01/msg00611.html

亮点:

I found the reason for the second problem - thanks to the information for the third. The algorithm used by Microsoft to generate temporary files allows only 26 files ("a" to "z") - or at least only 26 files which exist at any given time.

From: http://msdn.microsoft.com/en-us/library/34wc6k1f%28v=VS.80%29.aspx

"_mktemp preserves base and replaces the first trailing X with an alphabetic character. _mktemp replaces the following trailing X's with a five-digit value; this value is a unique number identifying the calling process, or in multithreaded programs, the calling thread."

1) the number of scratch file is it voluntarily limited to 26 ? and
why ?


First question: Yes. Second question: No idea - ask Microsoft. Educated guess: One never needs more than 26 scratch files (really!) and the implementation is easy as the one can fit the 5-digit process numbers into the remaining space. (POSIX has basename + 6 "X", where the X are replaced mktemp.)

I think gfortran has to work around this stupid implementation choice.

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands