作者flypaper (一直飞)
看板C_and_CPP
标题[问题] 如何不让printf转成puts
时间Wed Apr 3 22:12:45 2019
通常 C compiler 会做类似下面的转换
printf("hello world\n") => puts("hello world");
小弟我想问下gcc和clang分别该下什麽flag 才能阻止上面的转换
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.222.49
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1554300768.A.91A.html
※ 编辑: flypaper (111.251.222.49), 04/03/2019 22:15:12
1F:推 Hazukashiine: XY problem? 04/03 22:30
事情来由如下:
我工作遇到一个问题,就是前人的程式写了一堆printf()来debug。
但是那支我常常需要放好几天或背景执行,我是无法一直盯着萤幕看的。
所以我试图利用动态连结来改变原本printf()的行为
(
https://github.com/fakepaper56/print_to_log)
却发生了我问的状况。
3F:→ longlongint: 如果是我会用tee或是档案重导印到档案耶...... 04/04 00:05
4F:→ bibo9901: 硬要用这招的话,顺便把puts改掉不就好了... 04/04 03:23
确实要改就全部改 毕竟当初搞不好有写讯息是用puts()做的
5F:→ bibo9901: 其实gcc本身就有提供自订printf 04/04 03:24
6F:→ bibo9901: -fno-builtin-printf 04/04 03:38
※ 编辑: flypaper (111.251.222.49), 04/04/2019 07:35:08
7F:推 s4300026: 改成fprintf,印到硬碟里 04/05 23:52
8F:推 Astar5566: 就把puts顺便hook掉啊 04/06 00:14
9F:→ Lipraxde: syscall 也顺便啊>< 04/06 07:55
10F:推 annheilong: freopen 04/18 16:10