自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 深入了解 Object.defineProperty

Object.defineProperty 的基础与深入

2022-04-30 19:24:26 772

原创 QT实现电子表digitalclock

实现的效果实现的思路创建步骤1、新建项目下一步,下一步,完成,创建完成,项目结构如下:2、代码实现DigitalClock.h#ifndef DIGITALCLOCK_H#define DIGITALCLOCK_H#include class DigitalClock : public QLCDN

2015-11-27 20:16:05 1374

原创 Linux中搜索命令find

在Linux中使用find命令搜索需要的文件或命令:        find [path] -name [filename]        如:find /home -name "adb",在指定路径搜索        如:find -name "adb",全盘搜索

2015-11-01 21:03:32 2128

原创 使用replaceScene实现场景切换

在CCDirector中,可以使用replaceScene实现场景切换。说明:    1.场景的运行,首先在AppDelegate::applicationDidFinishLaunching()中通过CCDirector的runWithScene方法,运行游戏的第一个场景    2.通过点击HelloWorldScene中的一个精灵,实现切换到场景SceneSecond    3

2015-10-29 09:58:57 918

原创 CCDirector实现场景管理

CCDirector说明:       1.CCDirector来进行场景的管理和切换       2.CCDirector常用函数说明             runWithScene:第一次运行场景的时候使用             replaceScene:切换场景的时候使用,就是换一个渲染数             pushScene:把当前场景暂停,压到栈底,把新的场

2015-10-29 09:53:16 503

原创 HelloWorld工程中工程文件和目录结构

查看工程目录:        1.进入到工程所在的目录:C:\cocos2d-x-2.2.3\projects\HelloWorld         2.各个目录说明:             Classes              ==============  跨平台的代码             proj.android       ==============  Andr

2015-10-29 08:24:57 561

原创 创建cocos2dx项目

创建cocos2dx项目的步骤:        1.首先进入cocos2d-x-2.2.3\tools\project-creator目录        2.打开控制台,输入:create_project.py -project HelloWorld1 -package my.hello.world -language cpp        3.点击回车,看到下面的提示信息,说明创建成

2015-10-29 08:13:22 439

原创 类成员函数和全局函数

类成员函数和全局函数的对比:        1.类成员函数和全局函数的区别就是,一个是面向对象,一个是面向过程        2.类成员函数==(转成)==>全局函数:增加一个参数,增加的这个参数是代替this指针的        3.全局函数==(转成)==>类成员函数:减少一个参数,减少的这个参数通过this指针隐藏        4.这个例子是实现面向过程向面向对象转变具

2015-10-28 20:45:38 6220

原创 Linux下守护进程(daemon)和管道的结合使用(代码保留)

环境:Vmware Workstation;CentOS-6.4-x86_64程序实现的效果:通过管道向管道中写入一个字符串“exit”,使守护进程退出。步骤:1、创建管道并记录所在的完整路径:[negivup@negivup mycode]$ mkfifo fifo[negivup@negivup mycode]$ lsfifo[negivup@negivup

2015-09-21 20:33:59 660

原创 Linux下的守护进程(daemon)(代码保留)

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、一般程序的特点:依赖终端,终端退出,程序也会退出。也就是说,程序的TTY是pts/0,pts/0关闭,程序也会关闭。(ps -u negivup)2、守护进程的特点:不依赖终端,不通过kill,无法关闭进程。创建守护进程的步骤:1、父进程中执行fork后,执行exit退出,使子进

2015-09-21 20:32:17 702

原创 Linux下的共享内存(03)---通过指针访问共享内存中的数据

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、将共享内存挂载至进程:void  *shmat(int  shmid, const void *shmaddr,int shmflg);参数shmid是要附加的共享内存区标示符。 总是把参数shmaddr设为0。 参数shmflg可以为SHM_RDONLY,这意味着附加段是只读的。

2015-09-21 19:47:05 1544

原创 Linux下的共享内存(02)---创建共享内存

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、创建共享内存使用的函数:int shmget(key_t key, size_t size, int shm-flg);2、参数key既可以是IPC_PRIVATE(0),也可是是ftok函数返回的一个关键字。3、参数size指定段的大小。4、参数flags八进制数,0xxx。转化为

2015-09-21 17:52:02 1519

原创 Linux下的共享内存(01)---查看和释放共享内存

说明:1、查看共享内存,使用命令ipcs:ipcs -m2、删除共享内存,使用命令ipcrm:ipcrm -m [shmid]使用如下:[negivup@negivup mycode]$ ipcs -m  查看共享内存区------ Shared Memory Segments --------key shm

2015-09-21 17:50:33 9077

原创 Linux下的有名管道(06)---使用两个管道实现两个进程之间的通信(手机模式)

环境:Vmware Workstation;CentOS-6.4-x86_64说明:对讲机模式:一个进程输入完成一句话,必须等待第二个进程输入完成一句话之后才能再次输入。步骤:1、创建两个管道:[negivup@negivup mycode]$ mkfifo fifo1[negivup@negivup mycode]$ mkfifo fifo2[negivup@ne

2015-09-21 17:22:02 1079

原创 Linux下的有名管道(05)---使用两个管道实现两个进程之间的通信(对讲机模式)

环境:Vmware Workstation;CentOS-6.4-x86_64说明:对讲机模式:一个进程输入完成一句话,必须等待第二个进程输入完成一句话之后才能再次输入。步骤:1、创建两个管道:[negivup@negivup mycode]$ mkfifo fifo1[negivup@negivup mycode]$ mkfifo fifo2[negivup@ne

2015-09-21 16:52:00 1283

原创 Linux下的有名管道(04)---使用一个管道实现数据的读写

环境:Vmware Workstation;CentOS-6.4-x86_64说明:实现的程序,类似于shell操作有名管道。步骤:1、创建管道fifo1:[negivup@negivup mycode]$ mkfifo fifo1[negivup@negivup mycode]$ lsfifo12、创建并编辑makefile文件:.SUFFIXES:.c

2015-09-21 15:59:24 789

原创 Linux下的有名管道(03)---使用函数创建和删除有名管道

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、创建管道的时候,使用的函数:int mkfifo(const char *pathname, mode_t mode);2、删除管道的时候,使用的函数:int unlink(const char *path);3、这两个函数的返回值,如果是-1,说明失败。步骤:1、编写makef

2015-09-21 15:38:32 2904

原创 Linux下的有名管道(02)---shell操作有名管道

环境:Vmware Workstation;CentOS-6.4-x86_64说明:创建有名管道,并在两个控制台窗口中使用管道进行通信。步骤:1、创建管道,并查看管道信息:[negivup@negivup mycode]$ mkfifo fifo  这是创建管道的命令[negivup@negivup mycode]$ ls -l

2015-09-21 15:34:08 3891

原创 Linux下的有名管道(01)---知识点说明

有名管道(FIFO):有名管道是持久稳定的。有名管道存在于文件系统中。有名管道能让无关联的进程之间交换数据。有名管道和文件操作类似,都是有路径的。shell操作有名管道:创建有名管道:mkfifo[option] name,创建一个名为name的有名管道。读取管道数据:cat,从名为name的有名管道中读取数据。写入管道数据:[command]> nam

2015-09-21 13:43:57 638

原创 Linux下的无名管道

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、对于一个管道而言,在同一端要么只能读,要么只能写,不可能同时具有读写功能。2、无名管道只能在相关的、有共同祖先的进程间使用(如父子进程,两个不相干的进程之间不能使用无名管道)。3、读写管道与读写普通文件方式一样,调用write与read函数即可。4、int pipe(int pipefd

2015-09-21 13:25:15 691

原创 Linux下so文件的生成和使用

环境:Vmware Workstation;CentOS-6.4-x86_64说明:源文件中不能有main函数;写so文件的时候使用C语言写,不要用C++。程序:创建一个名字为libmyso.so的共享库文件,然后再定义一个程序来调用这个共享库文件。步骤:1、创建生成so文件的makefile:.SUFFIXES:.c .oCC=gccSRCS=

2015-09-21 12:48:11 2426

原创 makefile---使用共享库文件so

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、作用:告诉gcc编译器要在哪里链接,链接那个文件。2、gcc在链接的时候要加-l参数和-L参数3、-l:告诉gcc需要链接指定的共享库文件-l后面跟的共享库文件的名字如:共享库文件的名字如果是libmyso.so,那么在写的时候,就要把前面的lib和后面的.so去掉,得到myso

2015-09-21 12:41:32 2304

原创 makefile---生成共享库文件so

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、共享库so文件名必须以lib开头,扩展名必须是.so(硬性规定):lib***.so2、编译的时候,gcc必须加-fPIC选项,目的是使gcc产生与位置无关的代码。3、链接的时候,gcc要使用-shared选项,作用是指示生成一个共享库文件。makefile文件的形式如下:.SU

2015-09-21 12:38:44 5991 2

原创 C和C++通用的头文件编写形式

环境:Vmware Workstation;CentOS-6.4-x86_64说明:通过c++编译器预定义的一个宏“__cplusplus”,实现C和C++通用的头文件。头文件样式如下:#ifndef __MYHEADER_H__ // 如果没有定义,就执行下面的语句#define __MYHEADER_H__ // 定义宏__MYHEADER_H

2015-09-21 12:21:54 1016

原创 Linux下设置程序可以在当前目录下查找so文件

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、为了让Linux能在本目录下找到so文件,需要修改.bash_profile。2、在.bash_profile的最后位置添加代码:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.3、也可以把so文件放到linux的系统目录下:/usr/lib/设置步

2015-09-21 12:06:56 7341

原创 Linux下设置程序可以在当前目录下执行

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、设置前:执行程序的时候要使用命令“./程序名”来执行2、设置后:执行程序的时候使用命令“程序名”来执行设置步骤:1、进入到宿主目录cd:[negivup@negivup mycode]$ cd2、打开并编辑.bash_profile文件:[negivup@negivup

2015-09-21 11:56:37 1228

原创 Linux下的fork和execve结合使用(代码保留)

环境:Vmware Workstation;CentOS-6.4-x86_64程序说明:通过fork得到两个一模一样的进程,然后在子进程中执行execve函数调用另外一个进程,通过共享的文件描述符读取文件信息。程序书写步骤:1、创建并编写makefile文件:.SUFFIXES:.c .oCC=gccSRCS1=main.cOBJS1=$(SRCS1:.c=.

2015-09-21 10:57:52 1480

原创 通过execve实现不同进程间文件描述符的共享

环境:Vmware Workstation;CentOS-6.4-x86_64程序的实现原理:在myexecve中得到文件的描述符,通过execve函数,传递文件的描述符到程序other中,随后通过程序other替换程序myexecve,最后实现不同进程之间完成共享文件描述符的操作。步骤:1、编写makefile文件:.SUFFIXES:.c .oCC=gccS

2015-09-21 10:30:24 1236

原创 Linux系统函数execve说明(03)---execve函数本质分析

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、execve函数执行的本质是:在程序1中执行execve函数调用程序2,那么程序2就会完全霸占程序1的内存空间,从而实现一个程序调用另一个程序。2、通过execve调用的程序,两个进程的PID是完全一样的。图解说明:程序说明:验证通过execve调用的程序的进程PID相同。步

2015-09-21 10:07:51 1339

原创 Linux系统函数execve说明(02)---实现两个程序之间的调用

环境:Vmware Workstation;CentOS-6.4-x86_64说明:自定义两个程序,实现程序之间的调用。要求:1、定义两个源文件main.c和other.c,生成两个可执行文件main和other2、在other中打印参数的信息3、执行程序main调用other步骤:1、创建并编写makefile文件,实现编译生成两个可执行文件:

2015-09-21 09:49:31 1377

原创 Linux系统函数execve说明(01)---函数参数说明

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、execve是Linux的系统函数,查询的时候使用man 2 execve2、execve在头文件unistd.h中。3、execve的定义形式:int execve(const char *filename, char *const argv[], char *const envp[]);

2015-09-21 08:27:23 6400 1

原创 Linux中fork的使用(05)---父子进程共享文件描述符

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、父进程和子进程可以共享打开的文件描述符。2、父子进程共享文件描述符的条件:在fork之前打开文件。3、对于两个完全不相关的进程,文件描述符不能共享。4、父子进程文件描述符是共享的,但是关闭的时候可以分别关闭,也可以同时在公有代码中关闭。准备文件a.txt:This is so

2015-09-21 07:50:13 5793

原创 僵死进程和孤儿进程

环境:Vmware Workstation;CentOS-6.4-x86_64程序要求:编写一个孤儿进程,这个孤儿进程可以创建100个僵死进程。分析:1、首先在一个进程中fork,创建两个完全一样的进程。2、退出父进程,使子进程成为孤儿进程。3、在孤儿进程中循环创建进程,并结束孙子进程,使子进程成为僵死进程。实现步骤:1、创建并编辑源文件main.c

2015-09-20 18:59:13 436

原创 Linux中的僵死进程(03)---信号回收僵死进程

环境:Vmware Workstation;CentOS-6.4-x86_64说明:通过给进程发送信号,也可以回收已经消亡的子进程:signal(SIGCHLD, SIG_IGN);程序如下:#include #include #include #include #include #include int main(int argc, char *args[]

2015-09-20 18:38:15 450

原创 Linux中的僵死进程(02)---wait回收僵死进程

环境:Vmware Workstation;CentOS-6.4-x86_64这个可以参照前面的博客《Linux中fork的使用(04)---wait模型》需要说明的是:僵死进程一定是子进程消亡,父进程仍然存在的情况。

2015-09-20 18:30:50 423

原创 Linux中的僵死进程(01)---僵死进程的概念

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、僵死进程:子进程死亡,父进程存在。2、子进程不会被回收,回收的时机是父进程退出;也就是说,僵死进程的子进程,只有父进程退出的时候才会被回收。下面的程序是实现僵死进程的一个例子:#include #include #include #include #include int

2015-09-20 18:12:45 427

原创 Linux中的孤儿进程

环境:Vmware Workstation;CentOS-6.4-x86_64孤儿进程:1、父进程消失,子进程仍然存在,那么这个子进程就是孤儿进程。2、孤儿进程的PPID是1,此时子进程的父进程变成init()。程序:使用程序,实现一个孤儿进程,并得到孤儿进程的PPID。程序如下main.c:#include #include #include #

2015-09-20 18:08:59 936

原创 Linux中fork的使用(04)---wait模型

环境:Vmware Workstation;CentOS-6.4-x86_64wait说明:1、进程一旦调用了wait,就立即阻塞自己。2、wait会收集僵尸进程的信息,并把僵尸进程销毁后返回。3、wait函数的定义形式:pid_t wait(int *status)4、参数status用来保存被收集进程退出时的一些状态,它是一个指向int类型的指针。5、WIFEXIT

2015-09-20 17:19:44 595

原创 Linux中的sleep函数

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、Linux系统下可以使用sleep函数。2、sleep函数在头文件#include 中。3、sleep函数的定义:unsigned int sleep(unsigned int seconds);4、函数的参数是一个无符号的整形变量,代表的是秒数。5、函数的返回值是一个无符号的整形变

2015-09-20 16:33:50 7941

原创 Linux中fork的使用(03)---使用if...else...区分父子进程特有的内容

环境:Vmware Workstation;CentOS-6.4-x86_64说明:1、根据父子进程中,fork返回值的结果不同,那么可以明确区分执行代码属于父进程还是子进程。2、if的判断条件是fork的返回值是否大于0。3、在父进程特有代码中修改内容,不会影响子进程的执行;在子进程特有代码中修改内容,不会影响父进程的执行。4、在if...else...之外修改,会改变父

2015-09-20 15:36:37 1655

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除