#/bin/bash #score.sh #color function colour() { case $1 in black_white) echo -e&nbs
#include<stdio.h> #define _GNU_SOURC #include<fcntl.h> #include<stdlib.h> #include<signal.h> #include<unistd.h> static void handler_d(int sig,siginfo_
转换注释:类似sed,在vim低行模式下
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> #define MAXIMUS 15 //定义棋盘大小 int p[MAXIMUS][MAXIMUS];/
前言:正则表达式,又称正规表示法、常规表示法。(Regular Expression):正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言(PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby以及Py
test ,[ 是命令用于条件测试Shell中变量只要定义即可认为是全局的,除过local修饰的局部变量,特殊变量:$$,$@,$1-n,$#函数返回值:使用return缺点 1.$?访问 2.0~255之间,超过会溢出,可能无法正确表示某些期待的结果值。1.1-100求和:使用递归,非递归,bc工具2.进
//http.h #pragma once #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<sys/sendfile.h> #include<
Git:是目前世界上最先进的分布式版本控制系统(没有之一).Git功能:进行版本控制管理版本:一个文件每次保存后的样本。如果你修改了一个文件,而你又不确定原来的版本以后可能用到,所以你就会保存原来的版本和新生成的版本,再次修改第二版本的时候,你又会生成一个版本,于是,关于一个文件,你有了每个版本的备份。如此一来,你管理肯定是极不方便的。有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里
//http.h #pragma once
求一组数的最大值,最小值,平均值。tr工具,即命令,作用:大小写替换以及文本替换先使用for循环将小写输入到文件中再读取文件经过管道进行转换。管道作用:将上一条命令执行结果交给下条指令作为其输入。Shell脚本的调试:Shell脚本是依次执行的,读一条解释一条。故当调试时,应 1.定位错误行。 2.查看语法
转义字符:在对文本解析时,双引号会对字符串解析,单引号保持字面含义。echo $?本bash最近一次进程退出码双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:条件测试:退出码0表示成功,非0表示失败对于整形值言, -gt表示大于即great -ge表示大于等于great equal&n
shell脚本:数据批量处理,任务批量处理shell脚本文件以.sh为后缀,其实际无意义。shell运行原理: 1.命令中转(创建子进程,分析执行,返回结果) 2.创建进程完成任务 3.父进程不受子进程错误影响file /bin/bash,为二进制文件,shel
service mysqld start:启动数据库服务MYSQL * mysql_init(MYSQL *mysql);初始化mysql句柄.如果mysql为NULL, 则分配一个.连接数据库:关闭连接:void STDCALL mysql_close(MYSQL *sock);执行sql语句:int mysql_query(MYSQL *connection ,const char *quer
#pragma once #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<sys/sendfile.h> #include<sys/stat
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传输
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用
常见指令:telent 127.0.0.1 8080 连接 service iptables stop 关闭防火墙在TCP连接中,主动关闭连接的一方会进入2MSL,如果是服务器端,当TIME_WAIT时,sock不能被复用(四次挥手),使用setsockopt解决。int opt=1;setsockopt(listenfd,SOL_SOCK
函数原型:函数说明:该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。参数说明:fds:是一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个函数之后,系统不会清空这个数组,操作起来比较方便;特别是对于socket连接比较多的情况下,在一定程度上可以提高处理的效率;这一点与select()
系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。select:该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。参数含义:timeout:它告知内核等待所制定描述符中的任何一个就绪可在多长时间,其timeval结构用于指定这段时间的秒数和微妙数。struct tim
pipe用来创建管道,但是单个管道只能单向通信,一端用于读,而另一端用于写。如果要实现进程双向通信,必须创建一对管道。具体实现忽略。而socketpair则可以用来创建双向通信的管道。取决于底层实现,打开的还是一个文件,fd[0],fd[1],管道中f[0]读端,f[1]写端。#include <sys/types.h> #include <sys/soc
1.阻塞I/O2.非阻塞I/O3.I/O复用(select和(e)poll)4.信号驱动I/O(SIGIO)5.异步I/O( Posix.1的aio_系列函数)一个I/O分为两个过程:等,数据搬迁1.阻塞I/O:两个过程都由自己完成,eg:钓鱼,如果鱼没上钩,一直等待,什么都不做。同理,应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待。数据准备好了,从内核拷
函数原型:#includeint dup(int oldfd);int dup2(int oldfd,int newfd);dup用来复制oldfd所指的文件描述符。但复制成功时返回最小的尚未被使用的文件描述符。若有错误则返回-1,错误代码存入errno中。返回的新文件描述符和参数oldfd指向同一个文件,共享所有的锁定,读写指针,和各项权限或标志位。1.打开一个新文件2.关掉标准输出文件符3.调
1.冯诺依曼体系结构:2.Linux系统特性:开放性,多用户,多任务,良好的用户界面(Linux的传统界面是基于文本的命令行界面,即shell,有很强的程序设计能力,用户可方便的用它编制程序,从而为用户扩充系统功能提供更高级的手段。Linux特点:开源 免费 稳定,具有设备独立性,丰富的网络功能,可靠地网络安全,良好的可移植性。3.Linux分为内核和shell,内
守护进程也称精灵进程( Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。例
进程间关系:同步,互斥和其他。shell终端:可运行一个前台作业和任意多个后台作业,这称为作业控制。进程组:每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。注:只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是否终止无关作业:Shell分前后台来控制的不是进程而是作业( Job)或者进程组(
volatile:防止编译器性能优化,与移植性有关。#include<stdio.h> #include<signal.h> int done=0; void handle(int sig) { printf("get sig %d\n",sig); &
轻量级进程(LWP)是计算机操作系统中一种实现多任务的方法。在计算机操作系统中,轻量级进程(LWP)是一种实现多任务的方法。与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与线程相比,LWP有它自己的进程标识符,优先级,状态,以及栈和局部存储区,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()生成的进程一样的。另外,线程既可由应用程序管理,
函数指针的定义:返回值类型 ( * 指针变量名) (形参列表);1:"返回值类型"说明函数的返回类型,"(指针变量名 )"中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的"形参列表"表示指针变量指向的函数所带的参数列表。int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号