- 博客(28)
- 收藏
- 关注
转载 Linux进程间通信——使用流套接字
一、什么是socketsocket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器区分开来。二、套接字的属性套接字的特性由3个属性确定,它们分别是:域、类型和协议。1、
2017-05-18 12:47:09 383
转载 Linux shell 之 提取文件名和目录名的一些方法
很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等。下面介绍两种常用的方法来进行相关的操作。一、使用${}1、${var##*/}
2017-05-18 12:45:05 293
原创 shell程序设计的流程控制
1、test 测试命令①数值测试· -eq:等于则为真· -ne:不等于则为真· -gt:大于则为真· -ge:大于等于则为真· -lt:小于则为真· -le:小于等于则为真②字符串测试· = :等于则为真· != :不相等则为真· -z 字符串:字符串长度伪则为真· -n 字符串:字符串长度不伪则为真③文件测试· -e文件名:如果文件存在
2017-05-18 12:38:24 315
转载 Linux进程间通信——使用共享内存
一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到
2017-05-03 17:02:17 283
转载 Linux进程间通信——使用消息队列
一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、在Li
2017-05-03 16:59:50 288
原创 动态库的使用
(1)设计库代码 复制代码代码如下:[bill@billstone make_lib]$ cat pr1.c #include int p = 2; void print(){ printf("%p:%d\n", &p, p); printf("This is the first dll src!\
2017-05-03 16:55:04 184
原创 C语言编译执行过程详解
C源代码编译---->形成目标代码,目标代码是在目标机器上运行的代码。连接---->将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。执行----->在特定的机器环境下运行C程序。C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件1.编译预
2017-04-25 21:06:44 767
转载 linux makefile教程
转自陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件
2017-04-25 21:03:32 196
转载 Linux GCC常用命令
1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Comp
2017-04-25 20:58:04 356
原创 静态库的使用
静态库的使用静态库的操作工具:gcc和ar 命令。 编写及使用静态库 (1)设计库源码 pr1.c 和 pr2.c [root@billstone make_lib]# cat pr1.c void print1() { printf("This is the first lib src!\
2017-04-19 16:15:01 309
转载 Linux进程间通信——使用信号
一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们
2017-04-19 16:08:08 161
转载 linux 中特殊符号用法详解
# 井号 (comments)#管理员 $普通用户脚本中#!/bin/bash #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行
2017-04-19 16:05:20 250
转载 Linux进程间通信——信号集函数
我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。有关Linux进程间使用信号通信的更多内容,可以参阅我的另一篇文章——Linux进程间通信——使用信
2017-04-10 20:42:56 275
转载 进程间通信的方式——匿名管道
一、什么是管道如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。举个例子,在shell中输入命令:ls -l | grep string,我们知道ls命令(其实也是一个进程)会把当
2017-04-10 20:39:41 409
原创 开机过程表述
按下开机键后,系统进入BIOS系统区,系统BIOS区的第一条指令是“jump star”,即跳转到硬件自检程序start。为了方便地实现BIOS的功能,BIOS运行时要用到一些RAM,因此大多数BIOS要做的第一件事就是检测系统中的低端RAM。如果检测失败,那么大多数BIOS将无法调入RAM中,开机后无任何反应,微机黑屏。自检程序允许必要的附加卡上的BIOS程序首先进入它们自己的系统并初始化,但在
2017-04-10 20:37:20 396
转载 Linux多线程——使用互斥量同步线程(2)
一、什么是互斥量互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。二、互斥量的函数的使用它们的定义与使用信号量的函数非常相似,它们的定义如下:[cpp] view plain c
2017-03-27 22:23:15 254
转载 Linux多线程——使用信号量同步线程
信号量、同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过是同步的对象不同而已。但是下面介绍的信号量的接口是用于线程的信号量,注意不要跟用于进程间通信的信号量混淆,关于用于进程间通信的信号量的详细介绍可以参阅我的另一篇博文:Linux进程间通信——使用信号量。相似地,线程同步是控制线程执行和访问临界区域的方法。一、什么是信号量线程的信号量与进程间通信
2017-03-27 22:21:28 251
原创 嵌入式文本编辑器(vi)
1.vi的基本操作 进入与离开vi进入vi可以直接在系统提示字下键入vi<文档名称>,vi可以自动载入所要编辑的文档或是开启一个新的文档。如在shell中键入vi hello.c(新建文档)则可进入vi画面。进入vi后屏幕左方会出现波浪符号,凡是具有该符号就代表此列目前是空的。此时进入的是命令行模式。要离开vi可以在底行模式下键入“:q”(不保存离开
2017-03-27 22:16:39 1309
原创 ls 主要目录
主要目录 /bin /sbin /etc /root /lib /dev /tmp /boot /mnt /proc /usr /var /home /dev /usr 文件系统包含所有命令、库、man页和其他一般操作中所需的不改变的文件。 //var 文件系统包含会改变的文件,比如spoo
2017-03-21 18:40:15 312
转载 Shell 变量
Shell 变量定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="runoob.com"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看
2017-03-20 22:28:01 175
转载 VIM
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑
2017-03-20 22:26:55 469
原创 const(constant)
定义常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。目的const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。主要作用(1)可以定义const常量,具有不可变性。例如:const int Max=100; Max++会产生错误;(2)便于进行类型检查
2017-03-14 20:31:37 1295
转载 Shell 教程
Shell 教程Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 在线工具Sh
2017-03-14 20:19:11 152
转载 Linux 命令大全
1、文件管理cat chattrchgrp chmodchown cksumcmp diffdiffstat file find gitgitview indent cut lnless locatelsattr mattribmc mdelmdir mktempmore mmovemread mrenmtools mtoolst
2017-03-14 20:12:13 269
转载 linux指令
linux 指令大 (阅览次) linux 指令大全 档案目录管理 catcdchmodcpcut find lnlocatelsmkdirmore mv
2017-02-28 22:05:50 1062
原创 VM ware Workstation Pro和Ubuntu安装过程中出现的问题
1.安装VM ware后创建虚拟机最后一步显示:无法创建新虚拟机,无法打开配置文件 后来根据网络搜索,发现是权限问题,运行VMWARE的时候,右键点击VMWARE图标,选择“以管理员身份运行”,就可以解决这个问题。2.创建完成后安装Ubuntu时因为虚拟机窗口太大无法按确定,后来从电脑的个性化改变了显示,重启后窗口变小,继续安装。上传文件为老师分享的正确安装过程
2017-02-27 21:42:31 576
转载 Linux目录结构
除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?有底下这些:/etc:配置文件/bin:重要执行档/dev:所需要的装置文件/lib:执行档所需的函式库与核
2017-02-27 21:10:50 262
原创 关于Linux(网上资料查询)
1.Linux和Unix之间的关系?Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。 L
2017-02-27 20:44:23 462
linux和Ubuntu安装
2017-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人