Prog#246: vi command

/*
vi command 
Program#246
*/
#include<stdio.h>
main(int argc,char *argv[])
{
int i,p;
char a;
if(argc!=2)
{
printf("error: no.of arg");
return 0;
}
i=access(argv[1],0);
if(i==0)
{
p=open(argv[1], 0);
if(p==-1)
{
printf("file open error");
return 0;
}
i=read(p,&a,1);
while(i>0)
{
i=write(1,&a,1);
i=read(p,&a,1);
}
close(p);
}
else
{
p=creat(argv[1], 0640);
if(p==-1)
{
printf("file open error");
return 0;
}
i=read(0,&a,1);
while(a!='$')
{
i=write(p,&a,1);
i=read(0,&a,1);
}
close(p);
}
}