Prog#244: decrypt the given file

/*
decrypt the given file 
Program#244
*/
#include<stdio.h>
main(int argc,char *argv[])
{
int i,p,q;
char a;
if(argc!=2)
{
printf("error: no.of arg");
return 0;
}
p=open(argv[1], 0);
if(p==-1)
{
printf("error: no.of arg");
return 0;
}
q=open("temp", 1);
if(q==-1)
{
printf("file open error");
return 0;
}
i=read(p,&a,1);
while(i>0)
{
a--;
i=write(q,&a,1);
i=read(p,&a,1);
}
close(p);
close(q);
i=unlink(argv[1]);
if(i==0)
i=link(temp, argv[1]);
if(i==0)
i=unlink(temp)
}