完全可以,清除可以用写0字符替代,再把文件指针移到开头不就好了,偏移指针可以fseek。
如果文件已经存在,并且文件是一个常规文件,而且你打开是是允许写入的, 那就在open文件时加入参数 O_TRUNC就可以了。
你说的是APUE上的很经典的一个例子
源代码如下:
#include
#include
#include
#define BUFFSIZE 4096
int main(void)
{
int n;
char buf[BUFFSIZE];
while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0)
{
if (write(STDOUT_FILENO, buf, n) != n)
{
perror("write error");
exit(1);
}
}
if (n < 0)
{
perror("read error");
exit(1);
}
exit(0);
}
较原来的作了少许改动,这种代码应该能读懂吧。
可以的,你可以用重定向的方式