分页: 1 / 1

关于一个程序(能够查看进程和程序之间的关系),结果输出不对的问题

发表于 : 2013-03-06 21:29
zero_hsy
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
char buffer[2048];
int version = 1;

int main(argc,argv)
int argc;
char *argv[];
{
int fdold,fdnew;
fdold = open(argv[1], O_RDONLY);
if(fdold == -1)
{
printf("can not open file %s\n",argv[1]);
exit(1);
}
fdnew = creat(argv[2], 0666);
copyOperation (fdold, fdnew);
L: printf ("This is process %d\n", getpid() );
printf("Copy Done!From %s To %s\n",
argv[1],argv[2]);
exit(0);
}

copyOperation (old,new)
int old,new;
{
int count;
N: while ((count=read(old,buffer,sizeof(buffer)))>0)
write(new, buffer, count);
}
大家好,这个程序已经可以生成可执行文件,但是运行gdb以后,输出的一直是:can not open file (null) ,觉得不应该啊,应该是process id 和 “copy done”之类的,这是为什么啊?

Re: 关于一个程序(能够查看进程和程序之间的关系),结果输出不对的问题

发表于 : 2013-03-06 23:25
eexpress
这样的事情,为什么要写程序?

Re: 关于一个程序(能够查看进程和程序之间的关系),结果输出不对的问题

发表于 : 2013-03-07 8:37
buzzerrookie
运行gdb怎么运行的?加没加参数?

Re: 关于一个程序(能够查看进程和程序之间的关系),结果输出不对的问题

发表于 : 2013-03-07 18:45
YeLee
程序本身是没有什么大问题的,只是建议你最好是检查一下argv[1]是否为空,目标文件是否存在,是否有读文件权限,对于argv[2]顺便再检查一下是否合法的路径,还有对于目标文件是否有写权限而已,必要的错误检查是个好习惯。 :em01 :em01 :em01