[some MS internal support group] > Turns out the C standard explicitly says you can't have an input > follow iutput on a stream without doing fflush or fseek in-between, > to make sure the stdio buffer is cleared. So this program is illegal. It's undefined (there are no "illegal" programs -- that word doesn't appear in the std; "undefined" does and has a precise technical meaning). In the presence of threads-- which the C std doesn't mention --you have to address issues the std doesn't touch. To date, MS's is the only C runtime we've seen that corrupts itself in this situation. It can do anything it likes short of blowing up and still be considered a good threaded implementation. As is, it has to be considered sub-standard, in the ordinary sense of displaying worse behavior than other threaded C stdio implementations. It falls short there on other counts too (like the lack of getc_unlocked() & friends), but internal corruption is a particularly egregious failing. and-that's-the-end-of-it-for-me-ly y'rs - tim
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4