我正在读K&R的C编程,我刚刚开始了最后一章:Unix系统接口。我遇到了一个文件复制代码,它可以进行系统调用。首先,我在codeblocks windows中编译了代码,得到一个没有找到dir/file的错误,然后我想我应该在linux中编译这段代码。但我在之后又犯了同样的错误。
我在StackOverflow上读到了其他一些问题:
更新源
然后再次安装Linux头文件
阅读一些使用syscall.h的地方,但是bufsiz没有在其中定义,我认为这本书没有错。
#include "syscalls.h"
int main()
{
char buf[BUFSIZ];
int n;
while((n = read(0, buf, BUFSIZ)) > 0)
write(1, buf, n);
return 0;
}
最佳答案
#include <unistd.h>
#include<stdio.h>
main()
{
char buf[BUFSIZ];
int n;
while((n = read(0,buf,BUFSIZ))>0)
write(1,buf,n); //Output to the Console
return 0;
}
编辑:
unistd.h
可以使用。也修正了打字错误!输出:
myunix:/u/mahesh> echo "Hi\nWorld" | a.out
Hi
World