一个在conky中实现获取本地天气的c源代码。

源文件:w01.c,配置文件:weather.rc

makefile文件。

/*这是一个可以在conky下使用的获取天气预报的小程序,一下文档为一完整的

c源文件,名称为:w01.c

与此程序相关的文件还有:wearher.rc,makefile。

其中:wearther.rc为配置文件。

作者:linux吧-邻家捣蛋精灵 tybitsfox

*/

#include "/workarea/cprogram/include/clsscr.h"

#include

#include

#ifndef BYTE

#define BYTEunsigned char

#endif

#define bufsize65536

//分析、显示数据的数量,如需更多显示可更改此处,并添加weather.rc中查询关键字和位置。

#define dnum3

/*本程序将集成所有conky气象数据的获取操作,不带参数的调用将用于获取网页数据

* 资料并保存为临时文件。/tmp/wthxx0316.dat

* 带一个参数的调用将分别析取不同的显示数据并显示。目前为析取3个数据

* 如需添加,可在weather.rc中添加相应的搜索关键字及查询位置,并且增大

* dnum的大小。

* 默认的资源文件为~/.conky/weather.rc

* 为节约conky资源,还是使用临时文件将已经获取的数据保存其中,该文件默认为:/tmp/wthdata.dat

*/

/*

* 2009年6月6日修改版,使用中文显示天气预报。

* http://203.81.29.121/tq1.php?f=o&city=%cc%A9%B0%B2

*/

FILE *fp;

size_t write_data(void *p,size_t size,size_t number,void *stream);//curl要求的回调函数,用于保存为文件

int geturl();//获取气象web网页资料

int analy();//分析,获取数据

int fnd(BYTE* pd,BYTE* ps,int len,int dlen,int fd);//由analy调用,实现分析、保存数据

int main(int argc,char** argv)

{

int i,j;

char ch[512];

if(argc==1)

{//获取网页并分析获得需要的数据,保存至临时文件wthdata.dat

if(geturl()!=0)

{

//printf("geturl error\n");所有的显示在函数中实现

return 0;

}

pid_t pid;

pid=fork();

if(pid==0)

{

system("iconv -f GB2312 -t UTF-8 /tmp/wthxx0316.da > /tmp/wthxx0316.dat");

return 0;

}

if(pid>0)

{

sleep(3);

if(analy()!=0)

{

//printf("analysis error\n");在函数中实现

return 0;

}

}

goto normal_1;

}

else

{

if(argc==2)

{//带有一个参数的调用,将实现不同数据的显示。

i=atoi(argv[1]);

if(i<1 || i>dnum)//保证参数的设置与资源文件中一致

{

goto perr_1;

}

FILE *fl;char *p1;

fl=fopen("/tmp/wthdata.dat","r");

if(fl==NULL)

{

printf("open file error\n");

goto normal_1;

}

for(j=0;j

{//通过循环获得不同行的数据。

memset(ch,0,sizeof(ch));

p1=fgets(ch,sizeof(ch),fl);

if(p1==NULL)

{

printf("get data error\n");

fclose(fl);

goto normal_1;

}

}

printf("%s",ch);

fclose(fl);

goto normal_1;

}

else

{

goto perr_1;

}

}

perr_1:

printf("get and save date usage:\n %s\ndisplay usage: %s num\n",argv[0],argv[0]);

normal_1:

return 0;

}

//与服务器通讯,获取web数据,并保存于/tmp/wt

linux下c爬取天气的源码,一个在conky中实现获取本地天气的c源代码相关推荐

  1. Linux下软中断过程(详细)源码总结

    一.简介 由于中断会打断内核中进程的正常调度运行,所以要求中断服务程序尽可能的短小精悍:但是在实际系统中,当中断到来时,要完成工作往往进行大量的耗时处理.因此期望让中断处理程序运行得快,并想让它完成的 ...

  2. python-爬虫(最后附爬取数据的源码)

    爬虫初识 什么是爬虫? 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本.由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略. 只要能通过浏 ...

  3. 基于Python,爬取豆瓣读书源码

    记得上次分享了一个抓取豆瓣妹子美女图片的脚本,今天给大家分享一个爬取豆瓣读书的源码,也算是做个记录吧,目前已经在学习编程的路上,以后要是想写什么爬虫也可以参考参考自己收藏的一些代码,嗯,虽然我还是个代 ...

  4. Qt+mpv制作windows/linux 下的动态壁纸软件(含源码)

    mpv是啥? mpv之前是mediaplayer,windwos之前好像都有预装这个,都来经过发展,现在是一个对跨平台开发很友好的播放器工具. Qt是啥? 制作桌面应用程序的开发语言及工具,基于C++ ...

  5. 似物性检测——linux下运行objectness-v2.2并分析源码(pami2012论文)

    需要做一个似物性检测,首先去找了前段时间很火的程老师的论文BING看,大概了解objectness的含义,也跑了程老师的代码,因为自己不严谨,所以发短信问程老师还被说了,没好好看论文,不过后面自己还是 ...

  6. 拉勾网招聘数据爬取(公布源码)

    公众号爬取拉勾网招聘数据,本文只讲重点,因为爬任何一个网站,可能最重要的就是遇到反爬怎么办,也就是第一步能不能爬下来数据的问题,本文讲如何爬取拉勾招聘数据 环境及软件:Linux乌邦图.redis.m ...

  7. Linux下存储多路径软件MultiPath源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 全局概览 测试环境为CentOS 7 X64 从RPM获取源码 $ cd ~/rpmbuild/ $ yumdownloade ...

  8. Python request库爬取网页html源码

    #导入脚本库 from requests import *#定义公用函数获取数据,唯一参数为URL def getHTML(url):try:r=get(url) #模拟浏览器向网站发送http ge ...

  9. 惠农网_爬取二级网页内容(源码)_一蓑烟雨任平生

    废话不多说,直接上代码 今天倒霉的网站是惠农网供应大厅 import requests import pymysql from bs4 import BeautifulSoup # 用来解析网页 fr ...

  10. 中国农业信息网_爬取新闻详情(源码)_一蓑烟雨任平生

    废话不多说直接上代码 今天要倒霉的网站是全国农业信息网 import requests import pymysql from bs4 import BeautifulSoup # 用来解析网页 im ...

最新文章

  1. Depth graph
  2. 2005年2月9日(星期三) 晚上,熱 - 大年初一,首次創作。
  3. 成功解决ModuleNotFoundError: No module named 'dataset'
  4. linux自动安装跳过warning,linux 使用rpm安装软件时,遇到warning: rpmts_HdrFromFdno: Header V3...
  5. 《leetcode》single-number
  6. mybatis学习笔记-02-第一个mybatis程序
  7. C# DataTable学习
  8. 学好C++开发技术能从事哪些岗位?
  9. 《Unix环境高级编程》学习笔记
  10. 148. Sort List (java 给单链表排序)
  11. 摄像机没有连接到计算机代码45,摄像头错误代码的解决办法
  12. GCode_interpreter解读
  13. sdk寄存器地址linux,S32K SDK使用详解之PinSettings组件配置与使用详解(S32K1xx PORT 和GPIO模块)...
  14. 你知道什么是嵌入式技术吗?
  15. PPT差点被对手盗用?教你9种方法,打上你的个人信息!
  16. 智能电表如何采集数据?
  17. 如何提高外贸询单转化率
  18. 方波的产生——运算放大器LM324产生方波
  19. pii 400_为什么要加密所有个人身份信息(PII)
  20. 淘宝系统 B2C电子商务系统UML建模 范例

热门文章

  1. hard-negative mining详细介绍
  2. LeetCode之二分查找
  3. kaggle实战之流浪猫狗归处预测
  4. HDU-1863-畅通工程
  5. slz-servlet的引入
  6. 原创:如何统计并过滤行中单元格有颜色的值
  7. hdu 2570 (贪心)
  8. Linux 内核/sys 文件系统之sysfs 属性文件
  9. 【VS2010学习笔记】【编程实例】 (在Visual Studio中使用C++创建和使用DLL)
  10. matlab利用geotiffread读取tif文件报错:‘错误使用 tifflib, 无法打开 TIFF 文件’