linux下的C程序开发
文章平均质量分 66
airfer
这个作者很懒,什么都没留下…
展开
-
enum类型详解
1 enum是一个关键词,我们可以把它和class放到一块理解为什么可以放到一块理解呢?①因为我们的enum也可以定义类型,和class一样。如:enum weekday{Monday,Tuesday}; 这里的weekday就是一种自定义类型。我们可以用这种类型来定义变量。如:Code:weekday day; 我们用自定义类型原创 2013-04-10 16:57:02 · 2486 阅读 · 1 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--消息处理模块(message.c)
#include #include #include #include #include #include #include #include #include "parse_metafile.h"#include "bitfield.h"#include "peer.h"#include "data.h"#include "policy.h"#include "mess原创 2013-05-24 19:26:22 · 1408 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--种子文件解析模块(parse_metafile.c)
#include #include #include #include #include #include #include "parse_metafile.h"#include "sha1.h"char *metafile_content = NULL; // 保存种子文件的内容long filesize; // 种子文件的长度int原创 2013-05-24 19:29:53 · 1189 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--种子文件解析模块(parse_metafile.h)
#ifndef PARSE_METAFILE#define PARSE_METAFILE// 保存从种子文件中获取的tracker的URLtypedef struct _Announce_list { char announce[128]; struct _Announce_list *next;} Announce_list;// 保存各个待下载文件的路径和长度typ原创 2013-05-24 19:31:00 · 1260 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--peer模块(peer.c)
#include #include #include #include "peer.h"#include "message.h"#include "bitfield.h"extern Bitmap *bitmap;// 指向当前与之进行通信的peer列表Peer *peer_head = NULL;int initialize_peer(Peer *peer){ if原创 2013-05-24 19:32:47 · 1306 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--peer模块(peer.h)
#ifndef PEER_H#define PEER_H#include #include #include "bitfield.h"#define INITIAL -1 // 表明处于初始化状态#define HALFSHAKED 0 // 表明处于半握手状态#define HANDSHAKED 1原创 2013-05-24 19:34:10 · 1460 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--哈希模块(sha1.c)
#include #include "sha1.h"#define rol(value, bits) (((value) > (32 - (bits))))/* blk0() and blk() perform the initial expand. *//* I got the idea of expanding during the round function from SSL原创 2013-05-24 19:38:07 · 1675 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--哈希模块(sha1.h)
#ifndef SHA1_H#define SHA1_H/* * 本文件中的函数用于对一段文本使用sha1算法计算其HASH值 * 本文件为自由的开放源代码,可以任意使用,实现细节不必理会,只需使用即可 *//*SHA-1 in C By Steve Reid 100% Public DomainTest Vectors (from FIPS PUB 180-1)原创 2013-05-24 19:39:12 · 2275 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--peer交互模块(torrent.c)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "torrent.h"#include "message.h"#include "tracker.原创 2013-05-25 12:24:21 · 1583 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--tracker服务器交互模块(tracker.c)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "parse_metafile.h"#include "peer.h"#inc原创 2013-05-25 12:27:43 · 1848 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--Makefile
CC=gccCFLAGS= -Iinclude -Wall -g -DDEBUGLDFLAGS=-L./lib -Wl,-rpath=./lib -Wl,-rpath=/usr/local/libttorrent: main.o parse_metafile.o tracker.o bitfield.o sha1.o message.o peer.o data.o policy.o to原创 2013-05-25 12:32:13 · 1212 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--peer交互模块(torrent.h)
#ifndef TORRENT_H#define TORRENT_H#include "tracker.h"// 负责与所有Peer收发数据、交换消息int download_upload_with_peers();int print_peer_list();void print_process_info();void clear_connect_tracker();vo原创 2013-05-25 12:25:13 · 1275 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--Main函数模块(main.c)
#include #include #include #include #include #include "data.h"#include "tracker.h"#include "bitfield.h"#include "torrent.h"#include "parse_metafile.h"#include "signal_hander.h"#include "pol原创 2013-05-25 12:30:25 · 1087 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--tracker服务器交互模块(tracker.h)
#ifndef TRACKER_H#define TRACKER_H#include #include "parse_metafile.h"typedef struct _Peer_addr { char ip[16]; unsigned short port; struct _Peer_addr *next;} Peer_addr;//原创 2013-05-25 12:29:06 · 1242 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--缓冲管理模块(data.c)
#include #include #include #include #include #include #include #include #include "data.h"#include "sha1.h"#include "parse_metafile.h"#include "bitfield.h"#include "message.h"#include "pol原创 2013-05-24 19:18:39 · 1316 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--位图模块(bitfield.h)
#ifndef BITFIELD_H#define BITFIELD_Htypedef struct _Bitmap { unsigned char *bitfield; // 保存位图 int bitfield_length; // 位图所占的总字节数 int valid_length; // 位图有效的总位数,每一位代表一个原创 2013-05-24 19:11:12 · 1582 阅读 · 0 评论 -
CentOS 6.4下 BCM4312 802.11b/g无线网卡驱动安装
之前看过官方的教程,发现根本就没有用,我按照上面所述进行安装,但是后面还是没有无线的信号,这是我找的一篇关于BCM4312的文章,写的很简单,但是很实用!对帮助我的这篇文章的作者表示感谢!使用命令检测网卡 lspci | grep Network 为“06:00.0 Network controller: Broadcom Corporation BCM4312 802转载 2013-04-17 10:46:54 · 7577 阅读 · 2 评论 -
centos6.3安装nvidia显卡驱动
centos6.3安装nvidia显卡驱动减小字体增大字体作者:佚名 来源:本站整理 发布时间:2012-12-03 23:49:58测试系统环境:CentOS6.3细节:1、根据nvidia的具体型号,从官方网站下载即可,如:wget http://cn.download.nvidia.com/XFree86/Linux-x86_64/280.13/NVIDI转载 2013-04-18 16:22:37 · 1765 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--出错处理模块(bterror.c)
#include #include #include #include "bterror.h"void btexit(int errno,char *file,int line){ printf("exit at %s : %d with error number : %d\n",file, line, errno); exit(errno);}原创 2013-05-24 19:14:14 · 1382 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--出错处理模块(bterror.h)
#ifndef BTERROR_H#define BTERROR_H#define FILE_FD_ERR -1 // 无效的文件描述符#define FILE_READ_ERR -2 // 读文件失败#define FILE_WRITE_ERR -3 // 写文件失败#define INVALID_METAFILE_ERR -4 // 无效的种子原创 2013-05-24 19:15:53 · 1089 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--缓冲管理模块(data.h)
#ifndef DATA_H#define DATA_H#include "peer.h"// 每个Btcache结点维护一个长度为16KB的缓冲区,该缓冲区保存一个slice的数据typedef struct _Btcache { unsigned char *buff; // 指向缓冲区的指针 int index; // 数原创 2013-05-24 19:21:13 · 1183 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--日志管理模块(log.c)
#include #include #include #include #include #include #include #include "log.h"int logfile_fd = -1;void logcmd(char *fmt,...){ va_list ap;//这是一个结构体变量,用于可变参数问题 va_start(ap,fmt);//原创 2013-05-24 19:22:39 · 1251 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--日志管理模块(log.h)
#ifndef LOG_H#define LOG_H#include // 用于记录程序的行为void logcmd(char *fmt,...);// 打开日志文件int init_logfile(char *filename);// 将程序运行日志记录到文件int logfile(char *file,int line,char *msg);#endif原创 2013-05-24 19:23:56 · 999 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--消息处理模块(message.h)
#ifndef MESSAGE_H#define MESSAGE_H#include "peer.h"int int_to_char(int i, unsigned char c[4]); // 将整型变量i的四个字节存放到数组c中int char_to_int(unsigned char c[4]); // 将数组c中的四个字节转换为一个整型数// 以下函数创建各原创 2013-05-24 19:27:45 · 1310 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--策略管理模块(policy.c)
#include #include #include #include "parse_metafile.h"#include "peer.h"#include "data.h"#include "message.h"#include "policy.h"Unchoke_peers unchoke_peers; //存放非阻塞peer以及优化非阻塞peer的指针long lon原创 2013-05-24 19:35:38 · 1358 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--策略管理模块(policy.h)
#ifndef POLICY_H#define POLICY_H#include "peer.h"// 本文件实现了bittorrent协议的一些关键算法,主要有:// 流水作业(一次生成对某个peer的多个slice请求,一般为5个)// 片断选择算法(针对不同的下载阶段,有不同的选择策略)// 阻塞算法(根据速度选择非阻塞peer)以及选择优化非阻塞peer// 判断是否下载完原创 2013-05-24 19:36:34 · 1073 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--消息处理模块(signal_handler.c)
#include #include #include #include #include "signal_hander.h"#include "parse_metafile.h"#include "data.h"#include "bitfield.h"#include "peer.h"#include "tracker.h"#include "torrent.h"exte原创 2013-05-24 19:40:36 · 1801 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发--消息处理模块(signal_handler.h)
#ifndef SIGNAL_HANDER_H#define SIGNAL_HANDER_H// 做一些清理工作,如释放动态分配的内存void do_clear_work();// 处理一些信号void process_signal(int signo);// 设置信号处理函数int set_signal_hander();#endif原创 2013-05-24 19:42:10 · 1109 阅读 · 0 评论 -
Linux平台下基于BitTorrent应用层协议的下载软件开发---位图模块(bitfield.c)
#include #include #include #include #include #include #include #include "parse_metafile.h"#include "bitfield.h"extern int pieces_length;extern char *file_name;Bitmap *bitmap = NULL;原创 2013-05-24 19:08:15 · 1666 阅读 · 0 评论 -
关于重庆移动不得不说的——一个2010届本科毕业生给学弟学妹们
已经是十月中旬了,正是“秋风萧瑟天气凉,草木摇落露为霜”的季节,我一如既往的苦逼着奋斗着,间或不免感慨一下本科生涯的确花在学习上的时间的确太少了。忽然本科一个屋子的同学(当初保送了天大的研究生)给我打电话,说:“重庆移动又来我们学校招人了,告示贴在26楼碉堡外的墙上,你不来踢一下场子么?”我说:“不了吧,买卖不成仁义在啊!”挂了电话,心情却不能平静,忽然想到两年前的十月,正是我找工作的时候的情景,转载 2013-05-25 21:00:49 · 3816 阅读 · 0 评论