- 博客(101)
- 收藏
- 关注
原创 Linux进程操作
System系统调用#include int system(const char *command);system函数传递给/bin/sh –c 来执行command的命令(启动shell执行command),如果没找到返回127,其他错误返回-1,正确返回0,如果command为NULL,那么返回一个非零值int main(int arg,char* args[]){sy
2016-03-03 09:15:16
591
原创 Linux目录操作
找到当前目录char* getcwd(char*buf,size_t size); //将当前工作目录的绝对路径名复制到buf中,size指示buf大小,如果buf不够大,装不下该路径,则getcwd函数返回NULLint main(void){char buf[1024]={0};char* fd = getcwd(buf,sizeof(buf));if(fd==NU
2016-03-03 09:14:13
505
原创 Linux写日志
//屏幕回显#include#include#include#include#include#include#include#include #includevoid writeLog(const char* log,const char* path){time_t Date;struct tm* eventTime;time(&Date);
2016-03-03 09:13:35
744
原创 获取文件信息
#include #include #include int stat(const char *path, struct stat *buf);int fstat(int filedes, struct stat *buf);int lstat(const char *path, struct stat *buf); stat的定义: struct
2016-03-03 09:12:40
317
原创 Linux文件读写
0是标准输入STDIN_FILENO,1是标准输出STDOUT_FILENO,2是标准错误输出STDERR_FILENO例1:向标准输出文件输出,写文件#include #include #include //unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的头文件的名称#includevoid printArr(cha
2016-03-03 09:11:04
453
原创 tcpdump命令解析
根据使用者的定义对网络上的数据包进行截获的包分析工具tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。监视指定网络接口的数据包 tcpdump -i eth1如果
2016-03-03 09:09:28
491
转载 Linux文件系统的实现
Linux文件系统的实现作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录
2016-02-27 22:55:30
371
转载 Linux中查看CPU信息
cat /proc/cpuinfo中的信息processor 逻辑处理器的id。physical id 物理封装的处理器的id。core id 每个核心的id。cpu cores 位于相同物理封装的处理器中的内核数量。siblings 位于相同物理封装的处理器中的逻辑处理器的数量。 1 查看物理
2016-02-27 22:54:18
275
转载 Linux字符设备与块设备的区别与比较
Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上
2016-02-27 22:53:16
454
原创 android的adb命令以及测试
【adb命令】先将platform-tools里的adb.exe路径加到path环境变量里去adb -v查看版本adb devices 查看设备安装apk:进入apk所在目录->adb -s [adb devices 查看到的设备] install ***.apk卸载apk:adb -s [adb devices 查看到的设备] uninstall 包名将文件移
2016-02-23 18:47:20
360
原创 mysql使用知识点总结
select * from student s left join Grade g on s.gid=g.gid where sname like ?【top分页】select top ((3-1)*5)id from user;select 5 * from user where id not in(select top ((3-1)*5)id from user);
2016-02-23 18:46:13
376
1
原创 C++构造函数调用规则
1,当类中没有没有定义任何构造函数时,c++编译器提供默认无参构造函数和拷贝构造函数2,当类中有任何非拷贝构造函数时,编译器不会提供无参构造函数3,当类中有定义了拷贝构造函数时,编译器不会提供无参构造函数构造函数初始化列表:class EE{public://构造函数的初始化列表//EE(int _a):d1(1),d
2016-02-23 18:45:41
391
原创 c++中new与delete
New:从对空间分配一块类型大小空间,返回首地址其中常量是为对象指定初始值,可缺省,创建数组对象时不能为对象指定初始值类型 指针 = new 类型;类型 指针 = new 类型(常量);//直接初始化类型 指针 = new 类型[表达式];//定义数组Delete:其中指针变量必须为new 返回的指针Delete 指针;Delete[] 指针变量;
2016-02-23 18:44:38
339
原创 全局函数和成员函数
class Test1{public://Test1(this, int a, int b) .//全局函数形式Test1(int a=0, int b=0){this->a = a;this->b = b;}public:int a;int b;public://成员函数Test1& T_add(Test1 &t2){// Tes
2016-02-23 18:44:19
1473
原创 友元函数与友元类
class Test2{public://友元函数的特点是:有一个参数是友元类的指针或引用(可访问该类的私有成员)friend int OpMem(Test2 *p, int a); //友元函数,声明位置可随意Test2(int a, int b){this->a = a;this->b = b;}int getA(){return this->a
2016-02-23 18:43:58
373
原创 运算符重载
类型 类名::operator 运算符(参数){}class Complex{public:int a;int b;public:Complex(int a = 0, int b = 0){this->a = a;this->b = b;}void printCom(){cout}};void main01()
2016-02-23 18:43:46
283
原创 继承
赋值兼容性原则:子类是一中特殊的父类 子类可以当父类使用如果父类和子类定义的数据成员重名,如何确定调用哪个?#include "iostream"using namespace std;class A{public:int a;int b;A(int a = 0, int b =0){this->a = a;this-
2016-02-23 18:43:17
287
原创 多态原理分析
#include using namespace std;问题导出://1 函数重写print//2赋值兼容性原则(把子类对象赋给父类指针或者引用)//3函数重写遇上赋值兼容性原则//这个就是面向对象的新需求//针对这个函数void howToPrintf(Parent *base),我希望是//如果传来父类对象,那么应该执行父类函数//如果传来子类对象,那么执
2016-02-23 18:42:53
555
原创 虚继承
#include "iostream"using namespace std; class base{public:int k;void printI(){//cout}protected:private:};class base1 : virtual public base{public:int i;void printI(
2016-02-23 18:41:01
285
原创 模板
函数模板:template T>类型 函数名(形参列表){}类模板:template类型 函数名(形参列表){}//template关键字告诉c++编译器,现在开始泛型编程//typename 告诉c++编译器,T为类型(T为类型,可以参数化,int float),你不要乱报错//类型参数化。。。。。。。templatevoi
2016-02-23 18:39:39
335
原创 类模板遇上友元函数
#include using namespace std; templateclass Complex{ public:Complex( T r =0, T i =0 );Complex(T a) { Real = a ; Image = 0 ; } void print() const; friend Complexoperator+(Complex&
2016-02-23 18:39:21
1059
原创 深复制和浅复制
1,默认复制构造函数可以完成对象的数据成员值简单的复制2,对象的数据资源是由指针指向的堆时,默认复制构造函数仅作指针值复制两对象共享一块内存class name{ public :name(char *pn) ; name( name &obj){cout char *pn = obj.getPn();pname = (char
2016-02-21 18:54:07
352
原创 拷贝构造函数与析构顺序
调用复制构造函数的时机:1,用一个已有对象初始化另一个对象 void main(){Test88 t1;Test88 t3;//第一种场景//1赋值构造函数和=操作是两个不同的概念//2 赋值构造函数 copy构造函数 也是构造函数//3 当没有编写拷贝构造函数时,编译器会默认提供一个copy构造函数,执行浅拷贝//在这个场景之下。t2被创建,并且自动的调
2016-02-21 18:53:16
1498
原创 构造函数初始化
类的成员不允许设定初始值!private:int m_a = 10; //错误=====================================================================class Test{public: //有参构造函数Test(int a){m_a = a;}//无参数构造函数Test(
2016-02-21 18:52:06
338
原创 读写文件实例
//按照字符写文件void readByChar(){int i = 0;FILE *fp = NULL;char a[] = "ssssssssss";char *filename="f:/2.txt";fp = fopen(filename,"a+");if(fp ==NULL){printf("err");}for(i = 0;i{fp
2016-02-21 18:50:06
353
原创 函数重载
函数重载(Function Overload)用同一个函数名定义不同的函数当函数名和不同的参数搭配时函数的含义不同 函数重载至少满足下面的一个条件:参数个数不同参数类型不同参数顺序不同函数返回类型不是函数重载的判断标准!!!int =0占位符也不是函数重载的判断标准!!!void myprintf(int a, int b){printf("a:%d
2016-02-21 18:48:06
250
原创 默认参数和占位参数
C++中的const常量可以替代宏常数定义,如:const int A = 3; è #define A 3C++中是否有解决方案替代宏代码片段呢?(替代宏代码片段就可以避免宏的副作用!)C++中推荐使用内联函数替代宏代码片段C++中使用inline关键字声明内联函数内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内
2016-02-21 18:46:44
1486
原创 static静态变量分析
1,静态局部变量,在全局区分配内存,生命周期是整个程序运行时间,作用域是该局部作用域//static int a = 10; 把a变成一个状态变量//a初始化的时候10 ,只初始化一次,之后static int a = 10;不再执行//a = 11 int& mygg(){static int a = 10;printf("a:%d", a);return
2016-02-21 18:45:41
412
原创 C++引用
一;普通引用语法:类型+&+变量名= 被引用变量名在C++内部,引用是一个常量指针,Type & name = Type* const name,因此它的分配内存数与指针一样大引用本质就是对变量取地址int myf1(){int a ;a = 10;return a;} int& myf2(
2016-02-21 18:37:28
354
原创 Const和#define
C++中的const类似于宏定义Const int c = 5 ≈#define c 5C++中的常量与宏定义不同Const常量有编译器处理,提供类型检查和作用域检查#define预处理器处理,只是单纯的文本替换例:Void fun1(){#define a 10Const int b = 20;//#undef //取消该句以后的作用域}Void
2016-02-21 18:36:33
261
原创 C++对C的增强
c++中namespace:C++中的标识符cout,cin,都被定义在 std的命名空间内可以用using namespace std;引用该命名空间为了避免程序员在大规模程序设计或引用多个c++库时造成标识符冲突,可以使用命名空间Std是c++标准库的命名空间,如库中iostream,vector
2016-02-21 18:35:39
316
原创 c与c++不同的总结
1, 在c语言中 register修饰的变量 不能取地址,C++中可以取得register变量的地址,C++编译器做了优化,C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效2, C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上,在C++中,不允许定义多个同名的全局变量,直接拒绝这种二义性做法3, C语言的struct定义了一
2016-02-21 18:34:35
285
原创 C语言文件操作函数大全
表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include 定义函数 int fclose(FILE
2016-02-21 18:33:23
442
原创 结构体使用分析
//结构体分配内存是四个字节一行struct Teacher{char name[62]; //64int age;//4char c1;char c2;}; 大小为72struct Teacher{char c1;char c2;char name[62]; //64int age;//4}; 大小为68
2016-02-21 18:31:07
308
原创 多维数组
//1 不管是几维数组,都是线性存储的。所以会存在多维数组做函数参数,退化问题//2 多维数组做函数参数 二维数组,能勉强表达出来。但是三维数组,四维数组,,就表达不出来了。//结论:指针做函数参数,有效内存维数,只到2级。。如果你看到3级指针 4级指针,它表示的不是内存的维数对维数组还书参数推演:int printf1Array(char buf[
2016-02-21 18:29:55
267
原创 数组指针的分析
int main01(){int i = 0;//a代表数组首元素的地址,不是整个数组的地址//&a表示整个数组的地址 &a a代表的数据类型不一样//&a 数组类型 int[10]//a 数组首元素的类型int a[10] = {1,2}; //其他初始化为0int b[] = {1,2};int c[20] = {0}; //编译期间搞定for
2016-02-21 18:28:18
234
原创 二级指针
第一种:char *ArrayStr[] = {"ccccc", "aaaa", "bbbb","11111"};第二种:char myArray[10][30] = {"ccccc", "aaaa", "bbbb","11111"};第三种char **myarray = (char **)ma
2016-02-21 18:26:51
262
原创 数组与字符串
//初始化数组有两种方法//1 不指定长度char buf[] = {'a', 'b', 'c'}; //buf是个指针 是个常量指针 //2 指定长度char buf2[10] = {'a', 'b', 'c'};//3 字符串和字符数组的区别char buf3[] = {'a', 'b', 'c', '\0'}; //buf是个指针 是个常量指针 3
2016-02-21 18:23:58
372
原创 内存四区与指针的分析
数据类型:数据类型是固定内存大小的别名。int a[10]={};a的大小等于&a,但a+1的大小不等于&a+1,原因是数据类型不一样变量:变量是内存空间的标号内存四区堆区,栈区,全局(静态)和常量区,代码区全局(静态)和常量区:如果两个字符串完全一样C++编译器只会定义一份
2016-02-21 18:20:03
372
原创 Linux c操作mysql数据库
【启动mysql服务】Service mysql start【启动mysql登陆】mysql -u root –p 添加一个用户Create database db1 character set utf8;grant all on db1.* to dbuser1 identified by 'dbuser1';//将db1下的所有数据授权给dbuser1,密码为dbu
2016-02-21 18:13:41
2653
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人