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

为当前最终发行版之前的所有版本提供支持
回复
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu
送出感谢: 8 次
接收感谢: 0

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

#1

帖子 zero_hsy » 2013-03-06 21:29

#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”之类的,这是为什么啊?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

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

#2

帖子 eexpress » 2013-03-06 23:25

这样的事情,为什么要写程序?
● 鸣学
buzzerrookie
帖子: 116
注册时间: 2012-08-21 18:17
送出感谢: 0
接收感谢: 8 次

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

#3

帖子 buzzerrookie » 2013-03-07 8:37

运行gdb怎么运行的?加没加参数?
我是一个程序员。
头像
YeLee
论坛版主
帖子: 26408
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
送出感谢: 25 次
接收感谢: 307 次
联系:

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

#4

帖子 YeLee » 2013-03-07 18:45

程序本身是没有什么大问题的,只是建议你最好是检查一下argv[1]是否为空,目标文件是否存在,是否有读文件权限,对于argv[2]顺便再检查一下是否合法的路径,还有对于目标文件是否有写权限而已,必要的错误检查是个好习惯。 :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复

回到 “老旧版本支持”