Linux
123.56.119.133:8090
http://123.56.119.133:8090/
展开
-
CentOS设置sudo为不需要密码
文章目录步骤步骤vim /etc/sudoers 在root ALL=(ALL) ALL 下面一行添加一行表示当前新增加的用户, 并且不需要密码(NOPASSWD)原创 2020-01-06 23:11:01 · 1336 阅读 · 0 评论 -
HTTP协议详解(真的很经典)
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模转载 2016-07-31 20:43:44 · 311 阅读 · 0 评论 -
Centos下安装ncurses
命令:yum install ncurses-devel原创 2016-08-17 17:03:24 · 5275 阅读 · 0 评论 -
从用户浏览器输入url到用户看到页面结果的过程,发生了什么事情?
1、域名解析 域名解析的过程: 1).查询浏览器自身DNS缓存 2).若上面没有查找到,则搜索操作系统自身的dns缓存 3).若上面没有找到,则尝试读取hosts文件 4).若上面没有找到,向本地配置的首选DNS服务器发送请求 5).win系统 如果上面没有找到,操作系统查找NetBIOS name转载 2016-08-27 21:24:47 · 430 阅读 · 0 评论 -
linux下使用C++ Json库
安装Json库1、下载JsonCpphttp://sourceforge.net/projects/jsoncpp/files/2、下载sconshttp://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download3、解压scons-2.1.0.tar.gz转载 2016-08-17 17:09:38 · 2236 阅读 · 0 评论 -
https介绍
一:什么是https协议 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使 用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目转载 2016-08-18 20:22:36 · 3798 阅读 · 0 评论 -
tinyhttpd源码详解
tinyhttpd是一轻量级的web 服务器,最近几天终于抽出时间来研究研究了。其源码百度即可下载,500多行,确实是学习linux编程的好材料。很多网友都写了关于tinyhttpd的博文,但是我还是觉得不够深入,严格说是写得不够深入,往往就是把500多行代码一扔,分析下主要过程,画个流程图就完事了。我怎么觉得还有很多东西可以挖一挖呢,也许还可再调整一下代码,虽然目前也不清楚可调整多少,待我细细道转载 2016-08-11 22:07:49 · 421 阅读 · 0 评论 -
五种IO复用
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函数,导致应用程序阻塞,等待数据原创 2016-09-02 22:58:02 · 311 阅读 · 0 评论 -
数据库相关知识
service mysqld start:启动数据库服务MYSQL * mysql_init(MYSQL *mysql);初始化mysql句柄.如果mysql为NULL, 则分配一个.连接数据库:关闭连接:void STDCALL mysql_close(MYSQL *sock);执行sql语句:int mysql_query转载 2016-08-12 15:20:37 · 358 阅读 · 0 评论 -
Linux 下mysql教程
这是一篇真正适合初学者的MySQL数据库入门文章,哪怕你从来没有接触过数据库,或者说你从来没有听说过有数据库这东西,请一定要相信我,我当时就是这么过来的。如果你刚开始接触MySQL数据库,或者你需要使用MySQL数据库来保存一些基本的数据,比如说,用户基本信息、学生基本信息表等,但却不知道何从下手,那么这篇文章就很适合你了,下面通过一个有趣的案例来带你熟悉MySQL的基本指令操作,希望你也转载 2016-08-13 09:32:43 · 486 阅读 · 0 评论 -
udp如何实现可靠性传输?
udp如何实现可靠性传输? UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。 传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。原创 2016-09-04 16:25:45 · 1995 阅读 · 0 评论 -
HTTP协议介绍
一、TCP/IP 协议介绍在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示:从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头,数据封装格式如下:其中,对于TCP传输协议,客户端在于服务器建立连接前需要经过转载 2016-08-26 20:32:12 · 532 阅读 · 0 评论 -
socketpair
pipe用来创建管道,但是单个管道只能进行单向通信,一顿用于读,一段用于写,如果要实现进程双向通信,必须创建一对管道。而socketpair则可以用来创建双向通信的管道具体实现如下:#include#include#include#include#includeint main(){ int fd[2]; if(socketpair(AF_LOCAL,SOCK_STREA原创 2016-09-02 23:36:24 · 277 阅读 · 0 评论 -
Linux端口被占用解决办法
刚才程序已经关掉,但是端口号一致被占用,导致程序无法再启动解决办法:使用 kill -9 进程号原创 2018-12-30 15:58:25 · 651 阅读 · 0 评论 -
shell脚本调试
Shell本身提供一些调试方法选项:-n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。-v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。-x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。1.在命令行提供参数:$sh -x script.sh2.脚本开头提供参数:#!/bin/sh -x...原创 2019-03-15 23:33:03 · 640 阅读 · 0 评论 -
exit / _exit / atexit 浅析
进程的终止方式:有8中方式能够进程终止,前5种为正常终止1.从main函数中返回2.调用exit3.调用_exit或_Exit4.最后一个线程从其启动例程返回5.最后一个线程调用pthread_exit异常终止有3种,它们是6.调用abort( )函数7.接到一个信号并终止8.最后一个线程对取消请求作出相应一. exit()所在头文件:s原创 2016-07-20 17:11:10 · 374 阅读 · 0 评论 -
Centos6.5下虚拟机Linux 关于g++,gdb,ctags安装以及vim的配置
安装g++,gdb,ctags以及对vim的配置的目的: g++,gdb,ctags可以方便我们在Linux下编译程序,调试程序;对vim进行配置的目的: 进行vim配置,可以让我们在后续敲代码更加方便。按F5可以直接编译并执行C、C++代码以及执行shell脚本;按“F8”可进行C、C++代码的调试;“Ctrl + A”为全选并复制快捷键,方便复制代转载 2016-07-19 21:38:57 · 2462 阅读 · 0 评论 -
Linux基础
存储器是指内存CPU读取的数据都是从内存中来的,CPU处理完成的数据,必须要先写回内存,最后数据才从内存传输到输出单元。环境变量:(全部大写) 多用户操作系统,每个用户登陆后都有自己的专有环境。环境变量有一组变量组成。shell: 命令行解释器,bash是其中的一种常见的环境变量:1.PATH echo $PATH目录结构:多叉树 / 根原创 2016-05-11 00:03:11 · 2194 阅读 · 0 评论 -
Linux下find命令
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了很多的查找条件,功能非常强大。1.命令格式:find pathname -options [-print -exec -ok ...]2.命令功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)3.命令参数:pathname: find命令所查找的原创 2016-05-20 12:07:57 · 459 阅读 · 0 评论 -
常见的进程调度算法
进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。1.先来先服务(FCFS)调度算法原理:系统将按照作业到达的先后次序来进行作业调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中优先选择几个最先进入该队列的作业,将他们调入内存,为他们分配资源和创建进程。然后把它放入就绪队列。当在进程调度中采用FC原创 2016-06-05 23:41:19 · 845 阅读 · 0 评论 -
进程控制块PCB
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早,分析的版本为2.4.16,故出现的一些概念可能跟最新版本内核不同。此书已经开源,阅读地址转载 2016-06-05 00:28:06 · 314 阅读 · 0 评论 -
Linux下进度条小程序
进度条小程序原理:1.首先开辟一段空间,因为最后有 ‘\0’ ,所以可以开辟102个空间(101应该也可以)2.进行初始化3.字符串label是表示进度条状态的小东西,通过模除4可以表示这几个状态,当他们动起来的时候就好像在旋转(很有意思的方法)4.printf("\r")表示只回车不换行,这样就可以在一行中显示。5.[ -101s ] :如果不加符号,就会从右向左显示进度条,原创 2016-06-05 00:33:34 · 250 阅读 · 0 评论 -
exit和_exit,atexit
exit, _exit, _Exit 都是进程终止函数。 atexit 是在执行 exit 函数时设置要作的工作,实际就是调用要在进程退出想让程序执行的函数。 其参数是要调用的函数地址。参数函数是一个无参数无返回值的函数。atexit可以登记32个函数,这些函数由 exit 函数自动调用,登记的顺序和调用的顺序相反,即最后登记的先执行。同一函数登记多次也原创 2016-06-30 22:12:14 · 378 阅读 · 0 评论 -
如何理解ip路由和操作linux的路由表
路由是选择一条数据包传输路径的过程,也就是说主机怎么向目的地发送数据的过程。当TCP/IP主机发送IP数据包时,便出现了路由,且当到达IP路由器时还会再次出现。路由器是从一个物理网向另一个物理网发送数据包的装置,路由器通常被称为网关,它承但着分发数据包的任务。对于发送的主机和路由器而言,必须决定向哪里转发数据包。在决定路由时,IP层查询位于内存中的路由表,然后根据查询规则,进行ip路由。是不是很抽原创 2016-07-23 23:51:53 · 269 阅读 · 0 评论 -
C地址空间测试
#include#includeint g_val = 100;//全局变量void test(){ int a = 10; int b = 10; printf("test stack1 address:0x%x\n", &a); printf("test stack1 address:0x%x\n", &b);}void(*fp)();int main(){ int原创 2016-07-24 00:07:50 · 265 阅读 · 0 评论 -
Linux 匿名管道
#include#include#include#include#include#includeint main(){ int pipe_fd[2]; if (pipe(pipe_fd) < 0)//pipe函数用于创建管道,如果小于0,失败 { perror("pipe\n");//perror打印错误信息 return 1; } pid_t id = fork(原创 2016-07-24 00:11:48 · 281 阅读 · 0 评论 -
[计算机网络]--NAT原理介绍
NAT定义NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的原创 2016-07-26 13:28:13 · 1138 阅读 · 0 评论 -
[计算机网络]--代理服务器原理
代理服务器:代理服务器(Proxy Server)就是个人网络和因特网服务商之间的中间代理机构,它负责转发合法的网络信息,并对转发进行控制和登记。目前使用的因特网是一个典型的客户机/服务器结构,当用户的本地机与因特网连接时,通过本地机的客户程序比如浏览器或者软件下载工具发出请求,远端的服务器在接到请求之后响应请求并提供相应的服务。在使用网络浏览器浏览网络信息的时候,如果使用代理服务器,浏览原创 2016-07-26 14:19:01 · 924 阅读 · 0 评论 -
线程安全和可重入函数区别
线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和 运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。线程安全问题都是由全局变量及静态变量引起的原创 2016-07-17 15:33:25 · 449 阅读 · 0 评论 -
[Linux] 管道容量以及缓冲区的组成
一.管道容量:管道容量分为pipi capacity 和 pipe_buf .这两者的区别在于pipe_buf定义的是内核管道缓冲区的大小,这个值的大小是由内核设定的,这个值仅需一条命令就可以查到;而pipe capacity指的是管道的最大值,即容量,是内核内存中的一个缓冲区。pipe_buf: 命令:ulimit -a在终端输入该命令就会出现如下一表:管道容转载 2016-07-28 10:15:51 · 3716 阅读 · 1 评论 -
gcc使用和简要makefile
1.编译过程a.预处理(进行宏替换)--b.编译(生成汇编)--检查代码的规范性,是否有语法错误c.汇编(生成机器可识别代码)d.连接(生成可执行文件或库文件)gcc -E hello.c -o hello.i 1.-o 生成目标文件 2.-E 只进行预处理阶段 生成.i文件[wyg@bogon mkfile]$ gcc -E test.c -o te原创 2016-07-19 14:36:33 · 324 阅读 · 0 评论 -
Linux下vim简单配置
配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root⽬目录下,通常已经存在一个.vimrc文件。1.在网上根据自己的需求找到相关配置信息2.安装Taglist插件链接:http原创 2016-05-25 13:11:09 · 255 阅读 · 0 评论