[问题] freopen 用法

楼主: gigigigi (gigigigi)   2015-05-25 23:35:58
https://gist.github.com/anonymous/c2f50130eacfe03582ba
为什么再 fclose 后 printf("HHHHH");
没有出现 HHHH 字串
谢谢
作者: Feis (永远睡不着 @@)   2015-05-25 23:45:00
好问题, 印象中没什么跨平台的解法. XD 诚征有缘人困难点在于 freopen 会把原本的 stream 关掉
作者: Qbsuran (Qbsuran)   2015-05-25 23:57:00
windows: freopen("CON","r",stdin)freopen("/dev/console","r", stdin)如果要通用解法就靠preprocessor的define吧不然就靠dup来复制原本的fd
作者: x000032001 (版废了该走了)   2015-05-26 00:14:00
不要用freopen 用fscanf和fprintf指定FILE就好啦
作者: anyoiuo   2015-05-26 20:46:00
有限制平台吗?Windows? Linux?
楼主: gigigigi (gigigigi)   2015-05-26 21:33:00
Linux 平台
作者: anyoiuo   2015-05-27 10:37:00
http://ideone.com/a0TsP7应该可以work,并不是什么标准作法,纯粹突发奇想把FILE*当作是struct来复制windows下stdin/stdout用#define是r value, Linux则是l-value直接修改即可

Links booklink

Contact Us: admin [ a t ] ucptt.com