一 ,基本小语法 1. PHP 脚本可以放在文档中的任何位置 2.PHP 脚本格式: <?php // PHP 代码 ?> 3.PHP 文件的默认文件扩展名是 “.php”。 4.PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码(顺便把前端也就学了~__~) 5.PHP 中的每个代码行都必须以分号结束。 6.注释和C 语言的注释相同(// 和/* */ ) 7.变量需要用‘ $ ‘ 符号注明 二,输入与输出 1. echo 函数 1.可以不用加括号,也可以加上括号。即:echo或者是echo() 2.可以输出一个或多个字符串(字符串可以包含 HTML 标签) 3. echo 输出的速度比 print 快, echo 没有返回值,print有返回值总是1 <?php echo "<h2>Hello </h2>"; echo "world!<br>"; echo "PHP!<br>"; echo "这是一个" 继续阅读 >>


刘生玺 17/09/25 22:19:49
第一步:啥叫句柄,就是一个数字,就和你去饭店吃饭要排队,前台小姐给你分配了一个编号一样,然后她可以通过编号找到你。而在操作系统或者某种其他编程系统中,句柄就是这样的一个编号,用来对各种奇奇怪怪的东西编号,系统对你来说是一个黑箱,你只能通过这个编号向系统要东西 第二步:C语言操作mysql数据库常用函数 所用到的头文件: mysql/mysql.h 功能: 获得或初始化一个MYSQL句柄 函数原型: MYSQL *mysql_init(MYSQL *mysql) 函数返回值: 一个被始化的MYSQL*句柄 备注: 在内存不足的情况下,返回NULL 函数功能: 连接一个MySQL服务器(在连接之前,必须先进行过初始化) 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql,const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsi 继续阅读 >>


刘生玺 17/09/09 14:31:18
物理地址:也叫实地址、二进制地址,它是在地址总线上,以电子形式存在的,使得数据总线可以访问主存的某个特定存储单元的内存地址。 IP地址:为互联网上的每一个网络和每一台主机所分配的一个逻辑地址,以此来屏蔽物理地址的差异。 端口:端口其实就是队,操作系统为各个进程分配了不同的队,数据按照目的端口被推入相应的队中,等待被该进程取用 socket 地址结构: 1.通用套接字地址: struct sockaddr { unsigned short sa_family;//套接字协议族类型 char sa_data[14]; //存储具体的协议地址,最多使用14个字符长度。 }; 2.TCP/IP协议族地址: struct socketaddr_in { unsigned short sin_family; //地址类型,**在TCP/IP的网络编程中,只能是AF_INET** unsigned short int sin_port; //port 继续阅读 >>


刘生玺 17/08/04 11:32:16
数据库:简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 数据库:指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合 数据库的分类 1.关系型数据库SQL:创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 2.非关系型数据库NOSQL:Not Only SQL简称NoSQL,相对SQL来讲,关联性相对更自由.限制也较少. 可以更自由的使用 下面主要介绍关系型数据库(以mysql 为例) 关系模型:就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、MicrosoftAccess、MySQL、浪潮K-DB等 关系型数据库管理系统:数据库管理系统通过调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户提供管理、控制数据库容 继续阅读 >>


刘生玺 17/08/02 09:00:16
其实前面已经提到过信号了(异步信号~_~ ) 信号:信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。 异步:与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程处理完成,并回调通知此线程。 原子操作:顾名思义,就是说像原子一样不可再细分不可被中途打断。一个操作是原子操作,意思就是说这个操作是以原子的方式被执行,要一口气执行完,执行过程不能够被OS的其他行为打断,是一个整体的过程,在其执行过程中,OS的其它行为是插不进来的。 信号未决:产生信号,内核在进程表中设置标志,说明内核向该进程递送了一个信号,产生与递送之间的时间间隔称为信号未决 可靠信号:在信号阻塞之前,信号被传递多次 不可靠信号:在信号阻塞之前,信号被传递一次(优先递送它) 继续阅读 >>


刘生玺 17/08/02 09:00:16
线程同步 1.互斥锁 同一个时刻只允许一个线程执行一段关键代码,防止发生读写错乱。 锁的初始化(使用互斥锁之前必须先初始化) 1.将宏(PTHREAD_MUTEX_INITIALIZER)赋给锁(pthread_mutex_t mlock) 2.使用 pthread_mutex_init 函数 int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr); 参数restrict attr表示互斥锁的属性,NULL 为默认属性 。 加锁与解锁 #include <pthread.h> int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthr 继续阅读 >>


刘生玺 17/07/31 11:12:51
(百度百科来凑数的,哈哈~~~) 线程:有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。就绪状态是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机;运行状态是指线程占有处理机正在运行;阻塞状态是指线程在等待一个事件(如某个信号量),逻辑上不可执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。 线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。 创建线程: 创建线程函数: 继续阅读 >>


刘生玺 17/07/27 21:01:42
说些废话:话说从留校以来,linux C已经看了大半,然而自己还没有系统的总结许多的知识点。今天想来真乃是一大“罪状”啊!!!哈哈哈~~于是乎决定,利用这几天的时间对学过的小知识点系统性的总结一下。PS:仅作为个人的参考资料吧!如果对你有帮助,那真的是瞎猫碰上死耗子了^-_-^ 进程:一个程序被加载到内存当中运行,那么在内存当中的那个数据就是进程。 进程与程序的区别:进程是运行的程序,程序只是存放在硬盘上的可执行代码。 1.获取进程的各种ID (非负数) 书上说是函数声明在unistd.h 头文件中,但我man 之后发现是在sys/types.h 和 unistd.h之中,说明尽信书不如无书啊!!!! #include <sys/types.h> #include <unistd.h> pid_t getpid(void); pid_t getppid(void); uid_t getuid(void); //获得进程的实际用户ID uid_t ge 继续阅读 >>


刘生玺 17/07/24 11:40:17
转载 + 个人见解(转载地址) 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。现在让我来简单解释一下!!! 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。也就是说,单个CPU在一个精确的时间点只能运行一个任务。 3. 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一精确的时间点,CPU总是运行一个进程,其他进程处于非运行状态。(电力无法同时供给) 4. 一个车间里,可以有很多工人。他们协同完成一个任务。 线程就好比车间里的工人。一个进程可以包括多个线程。 6. 车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。 7. 可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。里面有人的时候,其他人就不能进去了。这代表一个线程使用 继续阅读 >>


刘生玺 17/07/22 17:47:13
理解递归,首先要理解栈是什么 栈:就是放在桌子上的一叠盘子 官方解释:栈(stack)又名堆栈,是一种运算受限的线性表。仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 人话解释:所谓的栈就是一个线性表。最上面的一个盘子就是栈顶,最下面的一个盘子就是栈底。出栈(pop)就是取走最上面的一个盘子,入栈(push)就是往上面放一个盘子。 小示例(数组实现的顺序栈): #include<stdio.h> #include<stdlib.h> #define MAX 30 #define FALSE -1 #define TRUE 0 typedef struct //data structure of stack { int data[MAX]; int top ; }stack; 继续阅读 >>


刘生玺 17/07/19 08:37:33