![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
tinyhare
喜欢电子,喜欢编程,嘿嘿。。
展开
-
Math.Inc 分型图形库数学函数头文件 数字函数+向量和矩阵函数+仿射变换
转自:http://www.4oa.com/Article/html/6/31/446/2005/15505.html /*分型图形库数学函数头文件*/ /*Math.Inc*/ #define Ln10 2.30258509299405E+000 /*数学常数定义*/ #define Pi 3.1415927 #define PiOver180 1.745329251转载 2011-12-22 16:42:25 · 861 阅读 · 0 评论 -
偶遇的技术,愿有时间留给我去追寻O(∩_∩)O~
socket can CAN 设备 使用伯克利的socket接口和linux网络协议栈的一种实现方法 http://blog.csdn.net/zhangxiaopeng0829/article/details/7646639 ############################### 我是分割线 ####################################原创 2012-10-11 17:22:13 · 1254 阅读 · 0 评论 -
linux 多线程信号总结
linux 多线程信号总结(一) 1. 在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。 2 signal函数BSD/Linux的实现并不在信号处理函数调用时,恢复信号的处理为默认,而是在信号处理时阻塞此信号,直到信号处理函数返回。其他实现可能在调用信号处理函数时,恢复转载 2013-01-10 11:05:16 · 1436 阅读 · 0 评论 -
程序调试信息的输出__FILE__,__LINE__,不定参数的宏定义
前言: 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。 比如,定义一个宏开关: #de转载 2013-01-09 09:39:38 · 959 阅读 · 0 评论 -
Linux 用户下定时器的实现
注:原文头文件缺失,有时间再添加 Linux下的定时器有两种,以下分别介绍: 1、alarm 如果不要求很精确的话,用alarm()和signal()就够了 unsigned int alarm(unsigned int seconds) 函数说明: alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数second转载 2013-01-07 14:23:54 · 1093 阅读 · 0 评论 -
Linux 下定时器的实现方式分析
概论 定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持,但使用场景的不同,对定时器的实现考虑也不尽相同,本文讨论了在 Linux 环境下,应用层和内核层的定时器的各种实现方法,并分析了各种实现方法的利弊以及适宜的使用环境。 首先,给出一个基本模型,定时器的实现,需要具备以下几个行为,这也是在后面评判各种定时器实现的一个基本模型转载 2013-01-07 14:34:34 · 853 阅读 · 0 评论 -
ioctl 函数
本函数影响由fd 参数引用的一个打开的文件。 #include int ioctl( int fd, int request, .../* void *arg */ ); 返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。 我们可以把和网络相关的请求划分为6 类: 套接口操作 文件操作 接口操作 ARP 高速缓存操作转载 2012-12-09 11:28:28 · 524 阅读 · 0 评论 -
linux下获得时间差,精确到微秒级别
最近需要测算软件计算FFT所需要的时间,所收集参考的资料: #include #include /* 包含标准库头文件 */ #include int main(int argc, char **arg转载 2012-11-21 16:35:51 · 3015 阅读 · 0 评论 -
Linux动态连接原理
Linux动态连接原理 注意: 以下所用的连接器是指,ld, 而加载器是指ld-linux.so; 1, GOT表; GOT(Global Offset Table)表中每一项都是本运行模块要引用的一个全局变量或函数的地址。可以用GOT表来间接引用全局变量、函数,也可以把GOT表的首地址作为一个基 准,用相对于该基准的偏移量来引用静态变量、静态函数。由于加载器不会把运行模块加载到固定地转载 2012-11-11 10:27:58 · 1234 阅读 · 0 评论 -
一些GDB的使用方法
1、首先需要用gcc(g++) 对源文件进行编译生成可执行文件,并且在编译时加上选项-g,把调试信息加到目标文件中。 2、假设生成的可执行文件为test,那么gdb test 可以用gdb打开test文件,然后通过break linenum设置断点。可以输入list查看源文件和行号,方便设置断点。断点设置好后就可以run命令运行到断点处了。 下面是转载 一、初始化 输入gd转载 2012-11-10 23:33:18 · 1067 阅读 · 0 评论 -
getsockopt/setsockopt函数说明(二)
SO_LINGER的这种操作模式是由linger结构来控制的: struct linger { int l_onoff; int l_linger; }; 成员l_onoff为一个布尔值,非零值表示TRUE,而零则表示FALSE。这个选项的三个值描述如下: 1 设置l_onoff为FALSE使得成员l_linger被忽略,而使用默认的close行为。也就是说,close调用会立即返转载 2012-11-01 19:23:39 · 685 阅读 · 0 评论 -
getsockopt/setsockopt函数说明(一)
功能描述: 获取或者设置与某个套接字关联的选项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议号TCP。 用法: int getsockopt(int转载 2012-11-01 16:43:27 · 1372 阅读 · 0 评论 -
一个失误,编译器报错Error: invalid char '[' beginning operand 2 `[ %eax]'
因为一个疏忽导致找bug几小时,上网搜寻不得,现写于此,愿向我一样被这一小概率事件折磨的人早点解脱。。。 gprs.c: Assembler messages: gprs.c:329: Error: invalid char '[' beginning operand 2 `[ %eax]' gprs.c:329: Error: invalid char '[' beginning oper原创 2012-10-28 20:51:19 · 1969 阅读 · 0 评论 -
用ioctl获得本地ip地址,ifconf和ifreq
用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq,它们对于大多数人 来说都是比较陌生的,这里给大家一种比较简单的理解方法,当然只一种帮助 理解的方法,在描述中可能会有一些地方与真实定义有所出入,仅供参考. 首先先认识一下ifconf和ifreq: //ifconf通常是用来保存所有接口信息的 //if.h struct ifconf { int转载 2012-10-29 14:19:28 · 708 阅读 · 0 评论 -
用C与脚本的混合编程来处理配置文件
在linux上写程序、做网管的人,或多或少都会几种脚本。脚本语言灵活的变量类型、强大的正则表达式 处理能力,再加上linux系统本身的管道、重定向以及丰富的命令行工具,让你编程起来游刃有余。而C语言固 然有种种优势,但不可否认,很多场合下,用脚本语言更为方便,比如我们将举例说明的对配置文件的处理。 先看看我们示例程序的任务: 假设我们有一个用c写的程序,它有一个配置文件 user.co转载 2012-09-20 13:28:59 · 745 阅读 · 0 评论 -
学习笔记之SOCKET网络编程
1.什么是SOCKET (SOCKET也就是所谓的套接字) 简单的说它是一个文件.它是使用标准Unix文件描述符和其它程序通讯的方式,Unix中的一切就是文件,程序在执行任何形式的 I/O 的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数,这个文件可能是一个网络连接,FIFO,管道,终端,磁盘上的文件或者什么其它的东西. 这里的SOCKET就是一个特定的文转载 2012-09-17 16:30:54 · 585 阅读 · 0 评论 -
学习笔记之SOCKET网络编程之二
1.sendto()和recvfrom()函数 Sendto()和recvfrom()函数用于在无连接的数据报套接字方式下进行数据发送和接收. sendto()函数 定义:int sendto(int s,void *msg,int len,unsigned int flags,struct sockaddr *to, int tolen); 在发送数据时.由于本地端并没有与远程机器建转载 2012-09-17 16:28:36 · 671 阅读 · 0 评论 -
Graph.Inc 图形函数
参考:《C与C++高级图形程序设计》 -----------------我是分隔线:-D------------------ /* ============================================= Video Graphics Array Driver Original Material by Christopher D.Watkins 'C' Convers转载 2011-12-23 08:50:00 · 673 阅读 · 0 评论