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

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu

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

#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
来自: 长沙

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

#2

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

这样的事情,为什么要写程序?
● 鸣学
buzzerrookie
帖子: 116
注册时间: 2012-08-21 18:17

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

#3

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

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

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

#4

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

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