Linux
文章平均质量分 64
We_are_family678
这个作者很懒,什么都没留下…
展开
-
SecureCRT通过sftp上传文件到Linux和下载方法
ecureCRT打开sftp方法很简单,直接在界面中同时按“ALT+P”就可以打开界面,当然还是命令行,没有界面,类似如下。在打开界面之前,最好先设置好sftp的初始化目录。打开SecureCRT的“选项”->“会话选项”->“SFTP标签页”,修改。使用方法和ftp命令基本一样,不清楚的可以参考lftp使用。常用命令有:ascii 设置传输模式为 ASCIIbi...原创 2018-08-07 16:13:12 · 2287 阅读 · 0 评论 -
进程或线程间同步(互斥锁和条件变量)
为允许在线程或这进程间共享数据,同步通常是必须的。互斥锁和条件变量是同步的基本组成部分。互斥锁和条件变量总是可用来同步一个进程间内的各个线程的。如果一个互斥锁或条件变量存放在多进程间共享的某个内存区中,那么也允许它用于这些进程间的同步。应用生产者-消费者问题,使用多个线程而不是多个进程,因为让多个线程共享本问题中采用的公共数据缓冲区非常简单,而在多个进程间共享一个公共数据缓冲区却需要某种形式的共享...原创 2018-05-18 21:07:35 · 1126 阅读 · 0 评论 -
Posix消息队列和System V消息队列
Posix消息队列比较简单:System V消息队列则使用消息队列标识符标识,具有足够特权的任何进程都可以往一个给定队列放置一个消息,具有足够特权的任何进程都可以从一个给定队列读出一个消息。跟Posix消息队列一样,在某个进程往一个队列中写入一个消息之前,不求另外某个进程正在等待该队列上一个消息的到达。我们可以将内核中的某个特定的消息队列画为一个消息链表。System V消息队列函数:1)msgg...原创 2018-05-18 20:23:42 · 1018 阅读 · 0 评论 -
IPC
IPC是进程间通信的简称。我们在一个系统上运行多个进程,每个进程都有各自的地址空间。Unix进程间的信息共享可以有多种方式。(1)左边的两个进程共享留于文件系统的某个文件的某些信息。为了访问这些信息,每个进程都得穿越内核(read、write)。当有一个文件有待更新时,某种形式的同步是有必要的,这样既可以保护多个写入者,防止相互串扰,也可以保护一个或者多个读出者,防止写入者的干扰。(2)中间的两个...原创 2018-05-18 20:04:18 · 345 阅读 · 0 评论 -
基本套接口编程
TCP/UDP端口号总在套接口地址结构中总是以网络字节序来存储。 套接口地址结构仅在给定主机上使用,虽然结构中的某些成员(如IP地址和端口号)用在不同主机间的通信中,但结构本身并不参与通信。为了执行网络I/O,一个进程必须要做的第一件事是调用socket函数,指定期望的通信协议类型(使用IPv4的TCP、使用IPv6的UDP、Unix域字节流协议等)。#include<sys...原创 2018-05-04 20:09:05 · 493 阅读 · 0 评论 -
字节操纵函数
原创 2018-05-09 16:47:49 · 388 阅读 · 0 评论 -
【总结】学习Socket编写的聊天室小程序
1.前言在学习Socket之前,先来学习点网络相关的知识吧,自己学习过程中的一些总结,Socket是一门很高深的学问,本文只是Socket一些最基础的东西,大神请自觉绕路。传输协议TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。特点:面向连接的协议,数据传输必须...原创 2018-05-09 10:06:39 · 542 阅读 · 0 评论 -
epoll对文件描述符的两种操作模式:LT和ET模式
原创 2018-05-08 22:19:56 · 651 阅读 · 0 评论 -
I/O复用
I/O复用使得程序可以同时监听多个文件描述符,这对提高程序的性能至关重要。需要指出的是I/O复用虽然能同时监听多个文件描述符,但它本身是阻塞的。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依次处理其中的每一个文件描述符,这使得服务器程序看起来是串行工作的。如果要实现并发,只能使用多进程或多线程等手段。Linux下实现I/O复用的系统调用主要有select、poll、epo...原创 2018-05-08 22:06:13 · 179 阅读 · 0 评论 -
读写锁
互斥锁把试图进入我们称之为临界区的所有其他进程都阻塞住,该临界区通常涉及对由这些线程共享的一个或多个数据的访问或更新。然而有的时候我们可以在读某个数据与修改某个数据之间做区分。获取与释放读写锁读写锁的数据类型为pthread_rwlock_t,如果这个类型的某个变量是静态分配的,那么可通过给它赋常值PTHREAD_RWLOCK_INITIALIZER来初始化它。读写锁属性...原创 2018-05-18 21:29:31 · 156 阅读 · 0 评论 -
System V信号量
●二值信号量:其值或为0或为1的信号量。这与互斥锁类似。若资源被锁住则信号量为0,若资源可用则信号量值为1。●计数信号量:其值在0和某个限制值之间的信号量。这两种类型的信号量中,等待操作都等待信号量的值变为大于0,然后将它减1。挂出(post)操作则只是将信号量的值加1,从唤醒在等待该信号量值变为大于0的任何线程。●计数信号量集:一个或者多个信号量(构成一个集合),其中每个都是计数信号量。semg...原创 2018-05-19 09:49:05 · 240 阅读 · 0 评论 -
shell编程其实真的很简单(一)
如今,不会Linux的程序员都不意思说自己是程序员,而不会shell编程就不能说自己会Linux。说起来似乎shell编程很屌啊,然而不用担心,其实shell编程真的很简单。背景什么是shell编程高大上的解释,往往让人摸不住头脑。一句话概括就是:shell编程就是对一堆Linux命令的逻辑化处理。为什么要会shell编程举个简单的例子,我们做javaweb开发的,在以前,如果要在本地将程序打包,...原创 2018-07-13 09:24:48 · 615 阅读 · 0 评论 -
进阶Linux高手必懂的Vim命令大全
命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新文件:open file在新窗口中打开文件:spli...原创 2018-07-12 16:36:52 · 216 阅读 · 0 评论 -
Linux cd命令
cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。 语法cd (选项) (参数) 选项-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连...转载 2018-07-11 10:41:50 · 241 阅读 · 0 评论 -
Linux管道的实现机制
在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为: 1)限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不像文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的wri...原创 2018-05-14 21:27:33 · 2062 阅读 · 0 评论 -
进程间双向通信--sockpair
sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建两个管道。sockpair直接就可以实现进程间双向通信。 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<...原创 2018-05-14 21:13:26 · 1205 阅读 · 0 评论 -
inet_pton函数和inet_ntop函数
原创 2018-05-14 10:41:54 · 1669 阅读 · 0 评论 -
IPv4套接口地址结构
原创 2018-05-14 10:34:40 · 414 阅读 · 0 评论 -
共享内存区介绍
共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间的数据的传递就不再涉及内核。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。 最后,将这些数据从由write函数的第二个参数指定的客户缓冲区复制到输出文件。...原创 2018-05-19 10:39:20 · 312 阅读 · 0 评论 -
并发执行,进程同步,进程互斥,异步,并行,多线程的区别
1. 几个概念1.1 并发在操作系统的一个时间段中,有几个程序同时处于启动运行到运行完毕之间的状态,且这几个程序都在同一个处理机上运行。并发又有伪并发和真并发:伪并发是指单核处理器的并发,真并发是指多核处理器的并发。1.2 互斥并发进程之间的制约关系有两种,即互斥和同步。多个并发进程之间,因竞争使用临界资源而互相排斥执行的间接制约关系,叫作互斥。例1:例2:共享变量设两个进程P1,P2,它们共享同...原创 2018-04-02 10:39:51 · 606 阅读 · 0 评论 -
Linux线程编程
进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享 线程 线程相关的执行状态和存储变量放在线程控制表内...原创 2018-03-26 13:47:09 · 171 阅读 · 0 评论 -
Linux yum 命令
linux yum 命令yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。y...原创 2018-03-22 09:29:58 · 244 阅读 · 0 评论 -
Linux的mount(挂载)命令详解
linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的计算机系统都是由UNIX系 统、Linux系统和Windows系统组成的混合系统,不同系统之间经常需要进行数据交换。下面我根据自己的实际工作经验介绍一下如何在linux系统 下挂接(moun...原创 2018-03-12 18:17:50 · 1250 阅读 · 0 评论 -
Linux cp命令
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。1、语法cp(选项)(参数)2、选项-a:此参数的效果和同时指定"-dpR"参数相同;-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向...原创 2018-03-18 17:45:46 · 601 阅读 · 0 评论 -
Linux中tar命令的用法
把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面...原创 2018-03-18 17:29:33 · 346 阅读 · 0 评论 -
Linux ls命令语法
ls命令概述ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似。当执行ls命令时,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示。当不加参数时,默认列出当前目录的列表信息。ls命令使用频率非常高,参数也非常多,多达四五十个,本文只介绍一部分常用的参数,其他参数可以通过man命令查看帮助手册。说明:在linux下,文件名以点.开头表示该文件为隐藏文件,...原创 2018-03-18 16:47:36 · 813 阅读 · 0 评论 -
vim的tab键设定
多在windows上编程的童鞋可能习惯于感受tab键为4个空格的长度,不过在linux系统中一般默认设定tab键为8个空格长度来显示。事实上tab也确实是8个空格的长度。不过由于习惯问题,某些童鞋还是希望在linux上也感受tab键为4个空格长度的显示,因为vi编辑器在linux上是那么地众所周知,所以下面就开始谈如何设定vim编辑器对tab键的显示长度问题。关于vim对tab键的设定问题,我在网...原创 2018-03-18 16:28:10 · 420 阅读 · 1 评论 -
Linux mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。1、命令功能: mv [选项] 源文件或目录 目标文件或目录 mv [选项] 源文件 目标文件 文件重命名 mv [选项] 源...原创 2018-03-18 13:25:42 · 289 阅读 · 0 评论 -
Linux 中inode的理解
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector...原创 2018-03-11 12:43:27 · 157 阅读 · 0 评论 -
VMware虚拟机三种网络模式详解
由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有VMware Workstations和VirtualBox等。在使用虚拟机软件的时候,很多初学者都会遇到很多问题,而VMware的网络连接问题是大家遇到最多问题之一。在学习交流群里面,几乎每天都会有同学问到这些问题,写这篇详解也是因为群...原创 2018-03-09 21:53:12 · 201 阅读 · 0 评论 -
Linux chown命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。 1.命令格式: chown [选项] [所有者][组] 文件 2.命令功能: 通过chown改变文件的拥有者和群组。在更改文件...原创 2018-03-18 18:37:25 · 248 阅读 · 0 评论 -
Linux chmod命令
许多喜欢使用chmod命令的用户,对chmod命令的含义和权限仍然不是很清楚,因此在使用的时候对它们造成了一定的麻烦。为了解决这些用户的迷惑,今天小编就和大家一起分享下chmod命令的含义和权限。用途:改变文件或目录的访问权限。该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1,文字设定法chmod [who] [+ | - | =] [mode] 文件名...原创 2018-03-18 18:48:37 · 221 阅读 · 0 评论 -
Linux gdb 调试
一. GDB简介及命令列表本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file <文件名>加载被调试的可执行程序文件...原创 2018-03-21 22:11:46 · 272 阅读 · 0 评论 -
整理一下vi编辑时,对齐文本的方法
之前从其他地方复制了一个格式很乱的代码到vi文本中,在网上找了好久对齐文本的方法,现整理一下,会有用的。 方法1:左对齐(用的比较多的):{range}left [margin]解释:{range}指需要对那些行进行操作;[margin]指最终该行首字符据屏幕左边缘的距离,若不指定,则默认紧靠屏幕左边缘。例如:1:1,3 left 5居中对齐 :{range}center[margin]解释:{...原创 2018-03-26 08:42:59 · 3329 阅读 · 0 评论 -
进程与线程的区别和联系
进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它...原创 2018-03-26 08:21:57 · 163 阅读 · 0 评论 -
Linux 信号量解析
信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux提供两种信号量:(1) 内核信号量,由内核控制路径使用(2) 用户态进程使用的信号量,这种信号量又分为POS...原创 2018-03-24 08:55:11 · 221 阅读 · 0 评论 -
浅谈Linux vfork与fork简单对比分析
本文分享了Linux vfork与fork简单对比分析,分享给大家,具体如下:fork相关问题:一、fork基础了解fork作用为创建一个子进程,在使用了fork命令后,内核会分配新的内存块和数据结构给子进程,并且将父进程的部分数据结构内容拷贝到子进程,最后再将子进程添加到系统进程列表中,添加完成后fork返回,开始调度。头文件:#include < unistd.h > 函数原型:p...原创 2018-03-19 13:51:10 · 335 阅读 · 0 评论 -
Tinyhttpd精读解析
首先,本人刚刚开始开源代码精读,写的不对的地方,大家轻拍,一起进步。本文是对Tinyhttpd的一次精读,大家每天都在用着http服务,很多人也一直活跃在上层,使用IIS、Apache等,大家是否想看看http服务器大概是怎么运作的,通过一个500多行的源码加上完整的注释,和大家逛一逛http服务器。Tinyhttpd真的非常适合阅读尤其是刚入门的,清晰的代码,简单的makefile......原创 2018-03-19 12:52:36 · 639 阅读 · 0 评论 -
Linux fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不...原创 2018-03-19 10:04:44 · 181 阅读 · 0 评论 -
Linux wait函数详解
Linux wait函数详解wait和waitpid出现的原因SIGCHLD--当子进程退出的时候,内核会向父进程SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止)--子进程退出时,内核将子进程置为僵尸状态,这个进程成为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态--父进程查询子进程的退出状态可以用wait/waitpid函数w...原创 2018-03-19 09:16:46 · 928 阅读 · 0 评论