- 博客(46)
- 资源 (4)
- 收藏
- 关注
原创 sqlite3在海思3516C平台上的移植过程讲解
1、sqlit3 源码下载https://www.sqlite.org/download.html请下载 sqlite-autoconf-3200100.tar.gz 这个文件注意:以下步骤不需要root用户权限。2、源码包解压cd$ mkdir sqlite3 #创建工作目录
2017-09-15 20:53:17
1372
原创 获取文件大小
介绍两种获取文件大小的方法:1、使用ftell函数函数原型:long ftell(FILE *stream);注意:因为ftell返回long型,根据long型的取值范围(-2147483648~2147483647),故对大于2.1G的文件进行操作时出错。此种以打开文件的方法取得文件的大小,不适合大文件,并且可能会出现访问冲突(比如正在下载的文件),效率也比较低。
2017-09-15 20:38:21
1608
原创 面试经常问到的问题(自己记录)
1、数组和指针的区别2、进程间通信3、TCP UDP区别4、写一个链表5、C++ 函数重载6、内存相关的7、static voliate 作用8、以前做过的项目
2017-08-11 18:29:18
349
原创 字符串转数字,数字转字符串程序
最近面试发现这两个题问的比较多,就把网上的一些算法总结一下:void int2str(int n, char *str){ char buf[10] = ""; int i = 0; int len = 0; int temp = n < 0 ? -n: n; // temp为n的绝对值 if (str == NULL) { return; } while(temp
2017-08-11 18:18:17
356
原创 Linux 内存分配,malloc(), free(),calloc(),realloc()用法
1、内存分类1、堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的。2、堆区(heap):一般由程序员分配与释放,基程序员不释放。3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块儿的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另 一
2017-08-06 00:27:54
743
原创 Linux 网络编程常用函数详解
sendto(经socket传送数据)相关函数send , sendmsg,recv , recvfrom , socket表头文件#include #include 定义函数int sendto ( int s , const void * msg, int len, unsigned int flags, const struct s
2015-07-12 14:16:42
739
转载 TCP/IP 组播编程
组播描述 组播(Multicast)是网络一种点对多(one to many)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目,而接收者可以根据自己的喜好选择频道来收听或收看节目。 传统网络的通信方式单播(Unicast)在许多场合下并不合适,如果强
2015-07-09 11:21:59
537
转载 Linux网络编程 之 UDP 组播实例
一个很简单udp 组播通信的例子,分别为服务器端和客户端的代码。1、服务器端代码 (multi_udp_server.c)[objc] view plaincopy#include #include #include #include #include #include
2015-07-09 11:21:18
2874
转载 Linux网络编程 之 UDP 广播 .
在网上搜了很多资料 ,其中周立发的博客对我的学习参考作用最大,谢谢前辈。这个倒让我花的时间最多了,主要一直脑残的在自己的虚拟机上调试不成功,认为只要开几个终端就可以当作服务器了,这种想法是错误的。因为ip地址会被占用的,所以后来我和同事测试一下,就OK了。这个广播代码逻辑其实挺有用的,可以用来寻找所在局域网内设备。逻辑就是:客户端一直发广播,当服务器收到这个广播,则向客户端
2015-07-09 11:20:35
782
转载 Socket编程知识必学
端口号常识:端口号由一个十六位的数字组成,取值范围是1 -- 65535,其中1 -- 1023 是保留端口号,固定给一些常用服务使用,1024 -- 65535是临时端口号,可自由使用。 端口号被从1 开始分配。 每个网络通信循环地进出主计算机的TCP 应用层。它被两个所连接的号码唯一地识别,即网址(ip)和端口号,这两个号码合起来就组成了套接字。套接字的三
2015-07-09 11:18:45
503
转载 HTTP协议详解
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT
2015-07-09 11:15:38
456
转载 Makefile中的wildcard用法
原文:http://blog.csdn.net/liangkaiming/article/details/6267357在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空
2015-06-04 09:30:58
590
原创 getaddrinfo(),freeaddrinfo(), gai_strerror()函数详解
getaddrinfo(),freeaddrinfo(), gai_strerror()函数详解
2015-06-02 10:58:07
3900
1
原创 struct sockaddr struct sockaddr_in struct sockaddr_un 结构详解
1、在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr{ sa_family_t sa_family; /* address family, AF_xxx
2015-05-21 20:13:27
1058
原创 LVM 学习总结(一)——基本概念及术语
注意:文章中有些信息是从网上找的资料学习过程中抄的。一、LVM基本定义 LVM(Logical Volume Manager),它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,可以弹性的增加或减小分区的大小,使得磁盘分区管理更具灵活性。LVM的实现示意图:二、LVM基本概念0、物理存储介质(The physical me
2015-05-06 20:04:30
1163
转载 链栈
原文地址:http://blog.chinaunix.net/uid-25885064-id-3803454.html栈(Stack)是限制在表的一端进行插入和删除运算的线性表。通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。当表中没有元素时称为空栈。栈为后进先出(Last In First Out)的线性表,简称为LIFO表。栈的修改是按后进先出的原则进行。
2015-03-30 18:33:50
505
原创 大端,小端,网络字节序总结
1、术语“小端”和“大端”术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。即:1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,低
2015-02-25 14:42:38
763
原创 经典面试题
1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "。 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个已经定义过的全局变量
2015-02-25 13:42:03
363
原创 c语言中经常出错,混淆的地方
一、指针相关*p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。*(p++)与*(++p)作用不同。若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1]。(*p)++表示p所指向的元素值加1。 如果p当前指向a数组中的第i个元素,则 *(p--)相当于a[i--];*(++p)相当于a[++i];*(--p)相当于a[--i];
2015-02-25 13:15:59
481
原创 使用指针作为函数返回值和参数的问题总结
1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置 于处理器的指令集中,效 率很高,
2015-02-06 18:49:30
1107
原创 gcc学习笔记
1、连接头文件gcc -I /usr/openwim/include fred.c使用 -I 标志来包含保存在子目录或者非标准位置的中的头文件。例如上边语句指示编译器不仅在标准位置,也在 /usr/openwim/include 目录中查找程序 fred.c包含的头文件。2、连接库文件.a:静态库, .so共享函数库可以使用完整的库文件路径名 或 用 -l标志告诉编
2015-02-04 09:19:13
462
转载 你喜欢上了一个程序员小伙!万分幸福
程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊~~于是写下此篇(有从别处看到的3句加进来的), 就算是为咱程序员做个广告~~要是觉得有点过的程序员们,就把此文当作一个美好的目标吧~~~:)———————————————-如果你喜欢上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护
2015-01-28 09:28:40
465
转载 经典SQL语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwin
2015-01-09 20:26:10
625
转载 sqlite3用法详解
使用的过程根据使用的函数大致分为如下几个过程:sqlite3_open()sqlite3_prepare()sqlite3_step()sqlite3_column()sqlite3_finalize()sqlite3_close()这几个过程是概念上的说法,而不完全是程序运行的过程,如sqlite3_column()表示的是对查询获得一行里面的数据的列的各个操作统称,实际上在sq
2015-01-09 20:21:35
712
转载 linux 下各errno的意义
本文转自:http://blog.csdn.net/kofiory/article/details/5790409strerror(errno):获取errno对应的错误/****************************获取错误代码描述**************/#include #include /* for strerror */#include int
2014-11-27 19:12:14
596
转载 fstat函数
stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。1首先隆重介绍的是一个非常重要的”VIP”人物,他是fstat, stat和lstat三者都要用到的一个结构体类型,名字叫做struct stat。可以说,没有这个struct stat的支持,上述三个系统调用将寸步难行。这个s
2014-08-05 19:48:58
538
转载 fcntl函数说明
(1)fcntl函数说明前面的这5个基本函数实现了文件的打开、读写等基本操作,这一节将讨论的是,在文 件已经共享的情况下如何操作,也就是当多个用户共同使用、操作一个文件的情况,这时,Linux 通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议
2014-08-05 19:47:28
511
原创 struct flock 结构体详解及用法
功能 :定义一些文件的锁的选项DescriptionThe flock structure in the /usr/include/sys/flock.h file, which describes a lock, contains the following fields: l_typeDescribes the type of lock. I
2014-08-05 19:33:24
6844
原创 C / C++ / Linux / —— 学习笔记
1、__cplusplus的用处#ifdef __cplusplusextern "C" {#endif...#ifdef __cplusplus}#endif 不太明白是怎么用的。今天阅读autobook,在第53页看到了作者的解释:C/C++编译器对函数和变量名的命名方法不一样(例如C++中重载的函数有多个名字,而C的函数只有一个名字),这样
2014-08-05 19:15:04
527
转载 getenv、setenv函数 获取和设置系统环境变量
getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include 定义函数 char * getenv(const char *name); 函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。 返回
2014-08-05 11:26:21
578
原创 struct ifreq 的用法详解
ifreq结构定义在/usr/include/net/if.h,用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名字和具体内容——(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而 ifconf结构通常是用来保存所有接口的信息的。
2014-07-02 19:53:05
22641
3
原创 gcc 常见的编译错误,警告总结
最近开始写博客了,而且总会有人问一些编译警告,错误怎么回事,怎么修改的问题,于是决定开始认真总结平时遇到的相关问题。今天就开始慢慢积累总结吧,也建议大家平时养成总结的好习惯,即使从现在开始也不晚。好的开始等于成功了一半。1、error: invalid operands to binary - (have 'unsigned int' and 'char *')说明:二元减法运算的操作数无效。2、...
2014-07-02 19:28:10
5215
转载 培养人脉的106个技巧
培养人脉的106个技巧成功的道路上,人脉比知识更重要。发展人际关系应当是你优先级最高的事。《不要一个人吃饭( Never Eat Alone)》一书介绍了21世纪的交际规则。书中包括了许多实用技巧,让你通过人际关系而兴旺发达。保留精华,以下是从书中总结的106条技巧。在实践中练习这些技巧,变成为生活成功充实的交际大师。1、帮助他人成功 社交的本质就是不断用各种形式帮助其它人成功。共
2014-07-02 09:13:40
556
转载 一个研究生毕业后的职业规划
我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对前景也很迷茫,想抛砖引玉,谈谈自己的看法,局限于理工科的学生,我对文科的不懂,身边的朋友也没有这一类型的。 91年研究生毕业,那时出路就是1种:留在北京的国营单位,搞一个北京户口,这是最好的选择。到后来的2~3年内,户口落定了
2014-07-01 18:36:30
692
模电数电做的四人抢答器有详细电路图及说明
2011-07-01
VB编写的俄罗斯方块
2010-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人