刚才抄了一段代码,一个自己实现copy功能的简易函数,发现对于新手学习最大的障碍是typo,因为对语法和参数的不熟,导致编译的时候会出现各种诡异的问题,原因很简单,我敲错了。就是一个简单的小程序,还不是我自己写的,居然花了40分钟进行最简单的编译通过。编译的错误是最低级的错误。
- #include <sys/types.h>
-
#include <sys/stat.h>
-
#include <fcntl.h>
-
#include <unistd.h>
-
#include <stdio.h>
-
#define PERMS 0666
-
#define DUMMY 0
-
#define BUFSIZE 1024
-
main (int argc,char *argv[])
-
{
-
int source_fd,target_fd,num;
-
char iobuffer[BUFSIZE];
-
if(argc!=3)
-
{
-
printf("Usage:Copy Source file Target file\n");
-
return 1;
-
}
-
if ((source_fd=open(*(argv+1),O_RDONLY,DUMMY))==-1)
-
{
-
printf("Source file open error\n");
-
return 2;
-
}
-
if ((target_fd=open(*(argv+2),O_WRONLY|O_CREAT,PERMS))==-1)
-
{
-
printf("Target file open error!\n");
-
return 3;
-
}
-
while((num=read(source_fd,iobuffer,BUFSIZE))>0)
-
if ( write(target_fd,iobuffer,num)!=num)
-
{
-
printf("Target file write error!\n");
-
return 4;
-
}
-
close(source_fd);
-
close(target_fd);
-
return 0;
-
}
然后自己又复习了下昨天练习的autoconfig,顺便看看参数,结果发现,我的虚拟机居然没有装man........之后,尝试改变下代码的路径,没有通过autoconf。这个autoconf还需要在以后的过程中掌握,这个暂时不是很紧要。慢慢写点代码才是最重要的。
阅读(886) | 评论(0) | 转发(0) |