|

楼主 |
发表于 2004-3-20 18:02:19
|
显示全部楼层
最初由 wuhu 发表
这是我自己写的,好象错误多多哦,
希望大家指正一下。
- #include <stdio.h>
- #define BUFSIZE 8124
- int main(void)
- {
- FILE *fp;
- int fd;
- char buf[BUFSIZE];
- if ((fp=fopen("print.c", "w"))==NULL)
- printf("can't open file\n");
- while ((fd=read("print.c", buf, BUFSIZE))>0)
- if (write("print.c", buf, fd)!=fd)
- printf("write error");
- printf("%s", buf[BUFSIZE]);
- fclose(fp);
- }
复制代码
每次编译后,我的print.c就成空的了,不知道怎么是什么原因·!
函数的用法有很多错误。为什么print.c为空呢?就是你的"w"参数,用这个参数打开文件,文件里的内容是清空的。而又没有写有任何的写入的操作。函数不懂就看man 2 <key>
这是正确的程序,(个人认为),有什么漏洞请大家指出:
- #include <stdio.h>
- #include <fcntl.h>
- #define BUFSIZE 8124
- int main(void)
- {
- int fd;
- char buf[BUFSIZE];
- if ((fd=open("print.c", O_RDONLY))<0) {
- printf("can't open file\n");
- return(1);
- }
- if(read(fd,buf,BUFSIZE)<0) {
- printf("read file error\n");
- return(2);
- }
- puts(buf);
- close(fd);
- return(0);
- }
复制代码 |
|