- 博客(41)
- 收藏
- 关注
原创 lua写的UI复用模块代码
--[[declare:复用模块author:shoulder--]]require "code/base/BaseObject"require "code/tool/UIFactory"-------CoupleBtn 类start----------------------------------用于表示有两种状态激活和没有激活,而表现各异的不同的按
2014-07-07 13:23:49 1491
原创 uc2
回顾: Linux/Unix的简介 gcc的用法 预处理的指令 #error #warning #pragma 环境变量 PATH/CPATH/.... 头文件 - 自定义头文件 今天: 静态库和共享库(动态库) C语言的错误处理 环境变量在程序中的处理(环境表) 内存管理 由于项目比较复杂,代码数量非常庞大,可以把代
2014-07-07 08:36:09 388
原创 uc15
回顾: 线程 - 线程原理(CPU时间片)、线程的创建、线程的退出、线程参数和返回、线程同步-互斥量 线程的创建函数: pthread_create(&id,0,线程函数指针, 线程函数的参数); void* task(void*) - 线程函数的基本格式 在向task传参时,必须保证传入的指针有效。 返回值时,也要保证返回的指针有效。
2014-07-07 08:34:17 395
原创 uc14
回顾: 网络编程 - TCP 、UDP TCP一对多的编程步骤: Server: 1 socket() 2 struct sockaddr_in 3 bind() 4 listen() 5 在循环中调用 accept() 6 读写操作: read() write() send() recv() 7 close() Cl
2014-07-07 08:33:42 297
原创 uc13
回顾: 信号量集 - 如何使用信号量集实现 控制访问共享资源的并行进程最大数量。信号量集的使用步骤: 1 ftok() 获取 key 2 semget() 创建/获取 信号量集(数组) 3 给每个信号量做初始化最大值 函数semctl() 4 对信号量的计数进行 +1 或 -1 操作 函数semop 5 如果不再使用,可以删除 semctl 网络 - 网络
2014-07-07 08:31:53 302
原创 uc11
综合案例: 发展道路: 外行->菜鸟->准程序员->程序员->核心程序员(高级)->系统分析师/系统架构师/项目经理-->部门经理/总监(管理职位)-->CTO技术方面的总裁-->自己搞公司 从菜鸟到准程序员 就是至少要 自己独立完成一个小项目。 要求: 1 一定自己动手,不要不写,也不要去抄。 2 尽可能的完成,不懂的要问。 做项目、软件的流程:
2014-07-07 08:31:43 458
原创 uc12
今天: 信号量集 网络信号量(semaphore)和信号量集(semaphore arrays)信号量集是由信号量组成的数组,信号量其实就是一个计数器,用于控制 同时访问共享资源的 进程/线程的总数(IPC中的信号量只控制进程)信号量的使用方式: 1.先赋处值,就是 允许并行的进程最大数量。 2.如果有进程访问, 计数-1,到0就阻塞访问进程。 3
2014-07-07 08:31:24 472
原创 uc10
回顾: 信号 - 信号集 sigset_t 及其相关函数 sigemptyset sigaddset sigdelset sigismember 信号屏蔽 - sigprocmask 信号注册增强版函数 - sigaction SA_SIGINFO sa_flags sa_sigaction 函数指针 IPC - 有名管道 mkfif
2014-07-07 08:30:45 392
原创 uc9
回顾: vfork()+exec系列函数 - 创建子进程的方式 执行全新的代码 vfork() 确保子进程先运行,不会复制 父进程的内存空间,但在调用exec系列函数之前会占用 父进程内存空间。 exec系列函数 可以 执行新的程序,替换以前的代码区、全局区、堆区、栈区。execl() execlp() waitpid() 让父进程等待子进程,比wait()更灵活
2014-07-07 08:29:13 505
原创 uc7
回顾: 文件相关 - 文件锁、文件相关函数 目录相关函数 - 4个+2个读目录的函数 文件锁主要是 读写锁,正确用法是 在调用读函数之前加读锁,在调用写函数之前加写锁,使用完毕后释放锁。如果需要一直等待加锁,可以F_SETLKW实现。 文件相关函数 - stat() access() chmod() truncate() ... mmap和fd结合使用,让虚拟内存地址
2014-07-07 08:28:25 380
原创 uc8
回顾: fork() - 通过复制父进程创建子进程,代码区不复制,其他的区域都会复制。如果有文件描述符,只复制描述符,不复制文件表。fork()创建的子进程和父进程共享代码区。fork()之后父子进程同时运行,fork()并不确定父子进程谁先运行,也不确定谁先结束。 wait() - 父进程等待子进程的结束。如果有多个,任意一个结束就返回。 pid_t wait(int* sta
2014-07-07 08:28:06 795
原创 uc6
回顾: 文件 - 文件读写、字符串的处理、dup() dup2()文件描述符的复制、lseek()、fcntl()复制文件描述符、设置/获取文件表的状态、介绍了读写锁的概念今天: 文件锁、文件的其他相关函数、目录操作 文件锁的原理: 读写锁,包括一个读锁和一个写锁 读锁:共享锁,锁定其他进程的写操作,允许其他进程读。 写锁:独占锁,锁定其他进程的
2014-07-07 08:27:26 336
原创 uc5
回顾: Unix/Linux内存管理 - sbrk()、brk() 一般用sbrk()分配内存,brk()回收内存 底层维护了一个位置,以1个内存页为基本单位 mmap()/munmap() 虚拟内存地址和物理内存/硬盘文件 做映射 映射以后 虚拟内存地址才能被用来存储数据 基本的文件操作- open() close() read() write
2014-07-07 08:26:28 456
原创 uc4
回顾: 环境表 - getenv() putenv() setenv() ... 内存管理 - 函数调用的关系图(Unix/Linux) STL - 自动 C++ - new delete C - malloc() free() Unix- sbrk() brk() Unix- mmap() munmap() 一个进程的内存空间:
2014-07-07 08:25:58 532
原创 uc3
回顾: 静态库(.a)和共享库(.so) ar -r gcc -shared -fpic gcc xx.c -l库名称 -L库路径 动态调用共享库 dlopen dlsym dlclose dlerror C的错误处理 1 函数中关于错误的设计 用 返回值 代表是否产生错误 返回int类型 用 -1 代表错误 返回指
2014-07-07 08:23:57 446
原创 uc1
标准C - 基础,不考虑平台Unix/Linux下C的开发 - Unix/Linux系统操作系统: 内存管理、文件/目录管理、进程管理、线程管理、网络支持、信号、IPC进程间通信UC 15天前半部分 理论+系统函数后半部分 系统函数应用为主理论上的东西 尽可能 理解,系统函数要求熟练使用。学习方法: 1 至少9小时的时间(课上6,课下3)。 2 程序员 首先
2014-07-07 08:23:25 807
原创 循环链表解决出圈问题java代码(已调试)
import java.util.*;import java.io.*;class Test{ public static void main(String[] args) { int personNum, outFlag; Scanner scn = new Scanner(System.in); System.out.print("请输入人数:");
2014-07-07 08:20:17 382
原创 java 中的 object.wait()和object.notify()的分析
下面的代码作用:开两个线程,一个线程打印数字,一个线程打印字母;打印结果要求:12A34B56C.........5152Z------------------------------------------------------------------------------public class PrintTest{ static int printedNum
2014-07-07 08:16:13 277
原创 linux命令2
day21.chmod命令可以修改一个文件的操作属性,使用方法如下: chmod linux系统文件的操作属性由9个字母表示; 这9个字母分成3组,每一组针对特定的用户群; 每组内部的三个字母表示读,写,执行这3个操作行为;(rwx)2.脚本文件中包含大量的命令,可以被当做程序执行;3.ln命令可以用来创建链接文件,使用方法如
2014-07-07 08:14:10 303
原创 linux命令1
day1.1.终端窗口中只能使用键盘,不能使用鼠标;2.whoami 命令可以知道当前使用的账号;3.clear 命令可以清除屏幕上的所有内容;4.linux 操作系统使用文件系统来管理文件,文件系统由文件夹(目录)和文件构成; 目录是用来对文件进行分组管理的,目录可以逐层嵌套;5.linux 的文件系统是从一个源头发展出来的,这个源头叫做
2014-07-07 08:13:13 287
原创 C++模板与泛型编程
为什么要有模板?将类型参数化,可以实现算法与类型的分离,编写针对类型更加抽象的函数或者类;-------------------------------------------------------------------------------------------------函数模板定义:template返回类型 函数模板名(形参表){......}
2014-07-05 15:15:59 285
原创 C++的异常与IO
为什么要有异常------why?1.通过返回值表达错误. malloc, fcntl 局部对象都能得到正确析构; 层层判断返回值,流程繁琐;2.setjmp, longjmp,远程跳转 例如: jump_buf g_env; if(setjmp(g_env) == -1) { 错误处理
2014-07-05 15:15:43 794
原创 C++运算符重载
运算符重载(操作符重载)复数:3+4iComplexC1-(C2 + C3) 直观,表现力强C1.sub(C2.add(C3)); 不直观,表现力弱操作符标记和操作符函数1.双目操作符:L#RL.operator#(R); 成员函数形式(左调右参)::operator#(L, R); 全局函数形式(左1右2)
2014-07-05 15:15:02 272
原创 C++面向对象
什么是对象?1.万物皆对象2.程序就是模拟一组对象,对象之间通过消息交换信息;3.类就是对象的描述和抽象,对象就是类的具体化和实例化;------------------------------------------------------------------通过类描述对象属性:姓名,年龄,学号行为:吃饭,睡觉,学习类就
2014-07-05 15:13:38 362
原创 C++基础
一.第一个C++程序:1.编译器: g++ ,如果用gcc需要带上-lstdc++指定其使用标准C++的运行库;2.源文件的扩展名:.cpp/.cc/.C/.cxx/.c++,最好使用.cpp3.头文件:#include 大多数标准库头文件都没有.h后缀;4.输出:cout------标准输出对象; 输入:cin--------标准输
2014-07-05 15:12:40 266
原创 C语言学习笔记15
回顾: 1.联合 2.指针(二级指针) 3.堆管理相关函数 作业: 1.读文件,显示其中所有人员信息 calloc函数也可以从堆中分配内存这个函数会对分配好的内容进行清0realloc函数可以调整堆中分配内存的大小realloc的调整不一定在原地完成调整完成后只需要释放新的内存空间realloc如果调整失败则返
2014-07-05 15:11:09 423
原创 C语言学习笔记14
回顾: 1.结构体 2.枚举 作业: 1.贪吃蛇 联合也可以包含多个不同类型的变量联合中的所有变量占据同一块内存空间联合可以节省内存空间的使用指针变量是用来记录地址数据的变量指针变量是分种类的NULL表示空地址记录无效地址的指针叫做野指针指针可以参与如下的简单计算指针 + 整数,指针 - 整数,指针
2014-07-05 15:08:25 299
原创 C语言学习笔记12
回顾: 1.位置指针 作业: 1.id判断 2.根据id显示人员信息 预处理指令是C语言支持的一种特殊指令它们以#做开头,不以;做结尾预处理指令在编译的第一个阶段被处理所有预处理指令都是把程序变成另外的样子gcc可以使用-E选项单独处理所有预处理指令#define是一个预处理指令这个预处理指令用来定义宏宏定义可以
2014-07-05 15:06:11 386
原创 C语言学习笔记13
回顾: 1.宏 2.条件编译 3.多文件编程 4.全局变量的使用和静态全局变量 5.结构体 结构体可以把多个不同类型的变量合并成一个整体结构体是一种数据类型,可以用来声明变量结构体的声明语法如下struct person { int id; char name[20]; float sala
2014-07-05 15:05:49 328
原创 C语言学习笔记11
回顾: 1.变量的生命周期和作用域 2.指针 作业: 1.排序 数组名称和指针变量的区别1.数组名称不可以被赋值,指针变量可以被赋值2.进行sizeof计算时结果不同3.进行取地址操作结果不同(数组名称取地址得到的数字和原数组名称代表的数字一样,但是新数字被当成二维数组看待)使用循环操作数组时可以用指针变量作为循环变量
2014-07-05 15:05:39 344
原创 C语言学习笔记10
回顾: 1.文件操作函数 2.递归函数 作业: 1.费氏数列 2.最大公约数 3.游戏进度 可以使用某个变量名的所有语句的综合叫这个变量的作用域全局变量声明在所有函数之外全局变量的作用域是程序中的所有语句全局变量被自动初始化为0局部变量声明在某个函数内部局部变量的作用域是声明它的函数内部的所有语句
2014-07-05 15:05:07 401
原创 C语言学习笔记9
回顾: 1.略 文件操作函数:1.fopen用于打开文件2.fclose用于关闭文件3.fread/fwrite函数用于对文件进行读写操作打开模式:"r" : 只读模式,从文件头开始"r+" : 读写模式,从文件头开始"w" : 只写模式,如果文件事先存在则会删除"w+" : 读写模式,如果文件存在则删除"a" : 只写模式,如果文件存
2014-07-05 15:04:28 271
原创 C语言学习笔记8
回顾: 1.一维数组 2.二维数组 作业: 1.圈叉棋判断输赢的代码 C语言中使用函数对语句进行分组所有C语言程序都是由一个或多个函数构成的所有C语言程序中必须有一个叫做main的函数,这个函数叫做主函数函数之间通过互相调用建立联系在函数调用过程中主动发起的一方叫调用函数,被动接受的一方叫被调用函数返回值是一个特殊的变量函
2014-07-05 15:02:29 313
原创 C语言学习笔记6
1、循环嵌套结构可以处理复杂的循环问题,外层循环的循环变量表示每个组代表数字的变化过程,内层 循环的循环变量表示组内某个数字的变化过程,内循环的开始数字和结束数字可能都需要通过外循环的循环变量计算得到。2、循环嵌套 把循环次数少的放在最外边3、for循环的多种写法 a、单条循环语句可以省略大括号 b、使用逗号操作符,可添加多个变量 c、在循环中声明循环变量
2014-07-05 15:01:58 299
原创 C语言学习笔记7
回顾: 1.循环嵌套 2.while,do...while循环 3.随机数 4.数组 作业: 1.彩票作业 2.身份证作业 数组可以在声明的时候初始化初始化的时候没有提供初始化数据的变量会被自动初始化成0数组名称在计算机里被当成数字使用,它就是数组中第一个变量的地址数组名称不可以被赋值数组名称加
2014-07-05 15:01:35 294
原创 C语言学习笔记4
负数的二进制表示(补码):1.先求其相反数的二进制表示;2.再各位求反再加1;按位求反加1的方法可以求任何一个二进制数字的相反数;所有有符号类型的最小数的二进制补码都是:左边一个1,右边全是0;char ch = 300;printf("%d",ch);结果为44,为什么?300 = 256 + 32 + 8+4 = 1,0010
2014-07-05 15:00:47 557
原创 C语言学习笔记5
回顾: 1.负数的二进制转换规则 2.操作符(算数操作符,逻辑操作符,位操作符,三目操作符) 作业: 1.提示奇数或偶数 2.提示正负数 移位操作符 左移(>) 3 左移固定在右边补0 12 >> 2 = 0000 0011 有符号数字右移左边补符号位
2014-07-05 15:00:13 301
原创 C语言学习笔记3
字符类型(char )是一种数据类型,其中包含256个不同的字符;'a'表示字符aASCII码记录字符与数字的对应关系:零字符‘0’ 48 (0x30) 'A' 65 (0x41) 'a' 97 (0x61)所有字符分为两组:1.常用字符: 0-1272.非常用字符:
2014-07-05 14:59:58 330
原创 C语言学习笔记2
标准函数是C语言官方提供的一组工具;每个标准函数负责解决某个常见的问题;printf标准函数用来把程序中的信息打印到屏幕上;为了使用这个标准函数需要包含stdio.h的头文件;通过占位符可以打印未知数字;变量是用来存储数据的,可以把变量当做数字使用;每个变量有自己的名字;变量也是分组的,一个变量只能存储某个分组的数据;变量必须首先声明,然后才能使用;
2014-07-05 14:57:56 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人