C 中 write() 中的转义字符
escaped characters in write() in C
似乎在 write() 中传递的转义字符不能(至少)正常工作。
printf("test");
printf("\r1234);
return
123
符合预期,但是
printf("test");
write(1, "\r1234, 5);
return
1234test
所以该行没有被覆盖
我想知道如何 erase/overwrite C 中的一行(我在 linux 顺便说一句)
谢谢
尝试刷新输出流:
代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("test");
fflush(stdout);
write(1, "\r1234", 5);
return 0;
}
输出:
1234
您的 REAL 问题是 printf
是缓冲的,而 write
是即时的。所以先写。是的,它确实发送了 \r
,终端读取它并移动到行的前面。当程序退出时,它会刷新 STDOUT 缓冲区并打印 printf 内容。
似乎在 write() 中传递的转义字符不能(至少)正常工作。
printf("test");
printf("\r1234);
return
123
符合预期,但是
printf("test");
write(1, "\r1234, 5);
return
1234test
所以该行没有被覆盖
我想知道如何 erase/overwrite C 中的一行(我在 linux 顺便说一句) 谢谢
尝试刷新输出流: 代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("test");
fflush(stdout);
write(1, "\r1234", 5);
return 0;
}
输出:
1234
您的 REAL 问题是 printf
是缓冲的,而 write
是即时的。所以先写。是的,它确实发送了 \r
,终端读取它并移动到行的前面。当程序退出时,它会刷新 STDOUT 缓冲区并打印 printf 内容。