当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求教下各位我的程序为什么不能写到文件?
帖子发表于 : 2007-10-16 16:07 

注册: 2007-10-16 11:24
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
int s=socket(AF_INET,SOCK_STREAM,0);
if(s<0){
cout<<"create socket error!"<<endl;
return 0;
}


struct sockaddr_in my_client_sock;
memset(&my_client_sock,INIT,sizeof(my_client_sock));
my_client_sock.sin_family=AF_INET;
my_client_sock.sin_port=htons(PORT);

struct hostent *p;
if((p = gethostbyname(head.c_str()))==NULL){
cout<<"USAGE:#rss.exe URL"<<endl;
}


ent_sock.sin_addr.s_addr=p->h_addr_list[0];
memcpy(&my_client_sock.sin_addr.s_addr, p->h_addr,p->h_length);


int r = connect(s,(struct sockaddr*)&my_client_sock,sizeof(my_client_sock));
if(r<0){
cout <<"connect error"<<endl;
exit(0);
}else{
cout <<"connect ok"<<endl;
}

string get="GET "+end+" HTTP/1.1\r\nAccept:*/*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nHost: "+head+"\r\nReferer: http://"+head+"\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nConnection: close\r\n\r\n";
write(s,get.c_str(),get.size());//point

if(access("xml/xml.xml",F_OK)){
system("rm -f xml/xml.xml");
}

char cache_buff[BUFF];
string buff1;
int fd=open("xml/xml.xml",O_CREAT|O_RDWR|O_APPEND);
while(true){
string ss;
memset(&cache_buff,INIT,sizeof(cache_buff));
memset(&buff,INIT,sizeof(buff));
int num=read(s,cache_buff,sizeof(cache_buff));


buff1.assign(cache_buff);
for(int i =0;i<buff1.length();i++){
if(buff1.at(i)=='<'){
ss.assign(buff1.substr(i,buff1.length()));
break;
}
}

cout<<ss<<endl;
if(num<=ERROR){

cout<<"load file over"<<endl;
write(fd,ss.c_str(),ss.size());
break;
}

}

close(fd);
close(s);

return 1;




head是域名end是域名后面的,比如head=www.cbbate.com end=/backend.php
INIT,ERROR是我定义的宏.都是0;各位看看我该如何解决?我的代码不好看,各位见笑 了.


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-16 16:09 

注册: 2007-10-16 11:24
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
能够得到正确的的string 到ss但是无法写入,,请教下各位了!


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-16 22:48 

注册: 2007-09-02 21:55
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
write写入的值一般是写的内核缓存里吧,要过一段时间才会写到文件里吧
看书上有专门介绍这个问题的一节,,你为什么不用C++的文件流来写入文件

我也是新手,可能上面的回答不对,望达人解答


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译