- 博客(31)
- 资源 (119)
- 收藏
- 关注
原创 C语言fgets读取整个文本文件的内容
#include #include #include int test_fgets(const char* filePath){ FILE* fp=fopen(filePath,"r"); if(fp==NULL) { printf("open error!%s",strerror(errno)); return -1;
2016-11-30 12:05:12 7470 1
原创 c语言goto语句的使用
#include //goto实现循环void test001(){ int i,sum=0; i=1; loop: if(i<=100) { sum=sum+i; i++; goto loop; } printf("%d\n",sum);}void test002(){
2016-11-30 10:01:49 8561
原创 关于C语言函数返回数组的问题
关于C语言函数返回一个数组c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意:1、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。可以是全局变量,静态局部变量,动态分配内存,以及从函数参数传过来的数组地址。2、返回指针时,无法返回长度,所以需要其它方式传回数组长度,以下是几种常用的方法。1) 约定固定长度;2) 以函数参
2016-11-29 23:03:52 32942 5
原创 C++ 异常处理例子
#include #include #include using namespace std;#ifdef _WIN32 //#include #include #endifvoid test_exit001(){ printf("test_exit001\n");}void test_exit002(){ printf("test_
2016-11-25 11:59:44 1193
原创 c++实现hash
#include #include using namespace std;#ifdef _WIN32 #include #include #endifclass Hash {public: Hash(): seed_(131), size_(0) { memset(head_, 0, sizeof(head_)); }
2016-11-24 12:08:53 1210
转载 C/C++跨平台的的预编译宏
#ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef _WIN64 //define something for Windows (64-bit only) #endif#elif __APPLE__ #include "Tar
2016-11-23 16:49:55 4713 2
原创 windows gettimeofday
#include <stdio.h>#include <time.h>#include <stdint.h>#ifdef _WIN32 #include <Windows.h>#else #include <unistd.h>#endifvoid gettimeofday(struct timeval ...
2016-11-21 15:59:25 2340
原创 vc编译器cl.exe和link.exe使用选项的简单例子
C/C++ 编译器选项 -优化-/O1 最小化空间 /O2 最大化速度/Ob 内联扩展(默认 n=0) /Od 禁用优化(默认)/Og 启用全局优化 /Oi[-] 启用内部函数/Os 优选代码空间
2016-11-21 09:54:30 4087
原创 C语言产生随机字符串
#include #include //产生长度为length的随机字符串 int genRandomString(int length,char* ouput){ int flag, i; srand((unsigned)time(NULL)); for (i = 0; i < length - 1; i++) { flag = rand() % 3; switch
2016-11-19 10:45:39 5818
原创 指针数组简单使用
#include #include void main(){ int **pp=calloc(3,4);//开辟二维数组,分配指针数组 int i=0; for(i=0;i<3;i++) { pp[i]=malloc(4*sizeof(int));//每个指针分配内存 } int num=0; i=0; int j=0; for(i=0;i<3;i++) { f
2016-11-15 21:55:12 3039
原创 linux直接运行so示例
#include const char banner[] = "linux直接运行so示例 run so demo \n Hello World\n"; extern int main (void) __attribute__ ((noreturn)); int main() { __write (STDOUT_FILENO, banner, sizeo
2016-11-15 02:24:39 2030
转载 linux编译glibc和提醒"libc.so.6: version `GLIBC_2.14' not found"系统的glibc版本太低
【linux】提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低0.以下在系统CentOS 6.3 x86_64上操作1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:
2016-11-15 02:17:30 9713
原创 linux make使用选项
用法:make [选项] [目标] ...选项: -b, -m 忽略兼容性。 -B, --always-make 无条件 make 所有目标。 -C DIRECTORY, --directory=DIRECTORY 在执行前先切换到 DIRECTORY 目录。
2016-11-14 00:36:35 3366
原创 gcc的中文版使用说明和选项
使用gcc -v --help可以列出gcc的所有可选项用法:gcc [选项] 文件...选项: -pass-exit-codes 在某一阶段退出时返回最高的错误码 --help 显示此帮助说明 --target-help 显示目标机器特定的命令行选项 --help={common|optimizers
2016-11-13 23:46:09 17013 1
转载 Linux GCC常用命令和编译过程
1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。
2016-11-13 23:13:28 707
转载 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测
系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。所以,在实践中会用到很多工具来调试内存问题。在本文中,我们将讨论最流行的开源内存管理框架 VALGRIND。摘自 Valgrind.org:Valgrind是用于构建动态分析工具的探测框架。它包括一个工
2016-11-11 19:18:20 491
转载 如何在linux下检测内存泄漏
1.开发背景在 windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下运行程序,而后调试器将在退出程序时,打印出程序运行过程中在堆上分配而没有释放的内存信息,其中包括代码文件名、行号以及内存大小。该功能是 MFC Framework 提供的内置机制,封装在其类结构体系内部。在 linux 或者 unix 下,我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使
2016-11-11 18:58:52 591
转载 应用Valgrind 发现 Linux 程序的内存问题
http://www.valgrind.org/Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用
2016-11-11 18:57:33 475
转载 利用Pin分析程序的动态行为特征
http://blog.csdn.net/weiffun/article/details/4307852在程序设计和优化过程中,我们通常希望能有工具帮助我们分析热点代码、覆盖率、内存泄露等这些特性,对多线程程序还希望能分析并发性、竞争和死锁等等。但这些特征通常在静态编译时很难获取,而且往往只能在运行时才能确定。Pin是intel开发的动态插桩工具,它提供一套API让我们开发和定制自己的
2016-11-10 00:35:07 1411
转载 Linux C 多线程编程总结
简单的多线程编程 Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可
2016-11-09 21:42:53 3006
原创 c++模板重载之字符串模板库的简单实现
#pragma once#define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std;class errorOutRange{ };//字符串模板库的实现 参考http://edu.51cto.com/lesson/id-86642.htmltemplate class
2016-11-09 01:26:45 958
转载 Linux strace命令
strace -o output.txt -T -tt -e trace=allstrace -o output.txt -T -tt -e trace=open 简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,
2016-11-08 18:50:07 422
原创 c++之多线程环境下static的坑
#include #include #include int count=0;//测试多次可以看出,每次输出结果不相同,会获取到不正常的重复数据。//多线程环境在getStringFromFd方法中的static区域 会获取到上修改过的数据,故函数内部的static char line[512];在多线程环境下是不安全的。char* getStringFromFd(int tid)
2016-11-08 09:51:05 9391
转载 arm汇编语言(android)调用C函数之参数传递
转自:http://blog.csdn.net/gooogleman/article/details/3538033arm汇编语言调用C函数之参数传递来源: ChinaUnix博客 日期: 2008.06.28 17:30 (共有0条评论) 我要评论 对于
2016-11-06 00:54:15 619
原创 python之简单排序文本文件
import sysimport platformimport osfrom subprocess import *if len(sys.argv) != 2: print("arg error, " + sys.argv[0] + " input_file"); exit(1)input_file = sys.argv[1];fp = open(input_fi
2016-11-05 10:26:59 2854
转载 Android Linker 与 SO 加壳技术
作者:王赛1. 前言Android 系统安全愈发重要,像传统pc安全的可执行文件加固一样,应用加固是Android系统安全中非常重要的一环。目前Android 应用加固可以分为dex加固和Native加固,Native 加固的保护对象为 Native 层的 SO 文件,使用加壳、反调试、混淆、VM 等手段增加SO文件的反编译难度。目前最主流的 SO 文件保护方案还是加壳技术
2016-11-03 18:18:48 1442
转载 windows下gdb与gdb_server调试Android的程序
手机服务端:启动方式: gdbserver:23946 + bin程序路径附加方式: gdbserver:23946+-attach [pid]PC客户端:D:\Android-ndk-r9\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-
2016-11-03 15:27:48 1446
原创 vector元素的删除
1、remove并不是删除,仅仅是移除,要加上erase才能完成删除。 2、remove并不是删除指定位置的元素,而移除所有指定的元素。 3、用algorithm代替成员函数不是一个好的选择。删除的方法:vec.erase(std::remove(vec.begin(),vec.end(),value),vec.end()); 源码:#include #include
2016-11-03 09:57:10 320
转载 ARM-ELF文件格式与GNU ARM Linker机制
这里所说的ARM系统基本文件格式,都是在基于ARM的嵌入式系统开发中常会碰到的文件格式。 ARM系统基本文件格式有三种:1) BIN,平板式二进制格式,一般用于直接烧写到Flash中,也可以用于加载到monitor程序中。2) ELF,EXECUTABLE AND LINKABLE FORMAT,一种通用的OBJECT文件格式,一般由GNU COMPILER COLLECTION
2016-11-02 15:24:01 485
转载 android linker 浅析
Android 的加载/链接器linker 主要用于实现共享库的加载与链接。它支持应用程序对库函数的隐式和显式调用。对于隐式调用,应用程序的编译与静态库大致相同,只是在静态链接的时候通过--dynamic-linker /system/bin/linker 指定动态链接器,(该信息将被存放在ELF文件的.interp节中,内核执行目标映像文件前将通过该信息加载并运行相应的解释器程序linker.)
2016-11-02 15:12:25 2255
原创 C/C++中“#”和“##”的作用和用法
在C/C++的宏中,”#”的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。而”##”被称为连接符(concatenator),用来将两个子串Token连接为一个Token。注意这里连接的对象是Token就行,而不一定是宏的变量。还可以n个##符号连接n+1个Token,这个特性是#符号所不具备的。
2016-11-01 16:21:40 1556
sqlite3.36集成加密版_vs2008
2014-04-10
Xtreme ToolkitPro+MFC使用小例子
2014-03-19
ormlite-jdbc demo使用例子。
2015-04-06
基于netbeans+javafx+fxml的基本控件的使用
2014-10-29
java 连接各种数据库大全和实例
2014-07-14
hadoop1.1.2操作例子 包括hbase hive mapreduce相应的jar包
2014-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人