linux
文章平均质量分 67
qq_40395404
这个作者很懒,什么都没留下…
展开
-
进程与信号
信号:Linux响应条件而产生的一个事件。接收到该信号的进程会相应地采取一些行动信号是由某些错误条件而生成的。如内存段冲突,浮点处理器错误或非法指令等等。它们由shell和终端处理器生成来引起中断,它们还可以作为在进程间通信或修改行为的一种方式,明确有一个进程发送给另一个进程。信号可以被生成、捕获、响应或忽略在signal.h中定义,以SIG开头其他信号:给当前进程发送si原创 2017-11-28 00:19:30 · 229 阅读 · 0 评论 -
网络编程
tcp服务器和客户端的编程流程:eg:时间/日期客户程序: 时间/日期服务端程序:**********************************************************************************套接字就是一个接口(本质是文件)一、套接字的属性域(domain)、类型(type)和...原创 2017-12-07 01:41:09 · 215 阅读 · 0 评论 -
共享内存
一、共享内存的定义共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段...原创 2017-11-28 00:56:25 · 278 阅读 · 0 评论 -
信号量
信号量定义 :特殊的变量,只能+1(v),-1(p),都是原子操作(不打断能被)。最简单的信号量是一个只有0与1两个值的变量,二值信号量。这是最为通常的形式。具有多个正数值的信号量被称之为通用信号量。信号量的作用:通知系统产生了某种事件Signal:改变对当前信号的响应方式(默认,忽略,自定义)子进程状态发生改变,发送给父进程(子进程结束了,会给父进程发送)Kill(pid_t pid,int s...原创 2017-11-28 00:40:15 · 1846 阅读 · 0 评论 -
什么是进程,什么是线程,什么时候用进程,什么时候用线程
什么是进程什么是线程?进程是指在系统中正在运行的一个应用程序;程序一旦运行就是进程进程可以认为是程序执行时的一个实例。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程无法直接访问另一个进程的变量和数据结构, 如果希望让一个进程访问另一个进程的资源,需要使用进程间通信,比如:管道,文件, 套接字等。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。 线程与进程的一个...原创 2018-03-30 01:45:29 · 12898 阅读 · 0 评论 -
线程
线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程对线程的操作:因为线程不属于系统调用,因此需要用到pthread.h库1.创建线程#include <pthread.h>int pthread_create(pthread_t *thre...原创 2018-03-30 21:33:36 · 225 阅读 · 0 评论 -
dup和dup2函数
dup和dup2,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr这两个函数的原形如下:dup()函数利用函数dup,我们可以复制一个描述符。传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述符的拷贝。这意味着,这两个描述符共享同一个数据结构。例如,如果我们对一个文件描述符执行lseek操作,得到的第一个文件的位...原创 2018-04-14 13:44:57 · 247 阅读 · 0 评论 -
Linux文件操作
Linux系统调用和库函数调用的区别:1、系统调用系统调用提供的函数如open, close, read, write, ioctl等,需包含头文件unistd.h。系统调用通常用于底层文件访问(low-level file access),例如在驱动程序中对设备文件的直接访问。系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。系统调用发生在内核空间,因此如果在用户空间的一般应用程序中使...原创 2017-12-07 01:32:46 · 335 阅读 · 0 评论 -
管道
引入管道的原因:普通文件存储在磁盘中,读写效率低管道文件存储在内存中,读写效率高 管道:其实是在两个进程之间实现一个数据流通的管道,单向或双向。优点:简单易用缺点:功能简单,有诸多限制 管道分为有名管道和无名管道。无名管道用于父子进程、兄弟进程之间的通信。无名管道是存在内存上的文件,进程对每一个已打开文件的操作都是通过一个file数据结构进行的,只有在同一个...原创 2017-11-27 01:48:21 · 261 阅读 · 0 评论 -
文本编辑器vi/vim
文本编辑器 vi/vim (redhat 上vi==vim)vi 文件名 创建普通文件 rm 删除文件vi下的三种模式:命令模式插入模式 (编辑模式)末行模式w 只保存 wq 保存退出q 退出(如果没有保存且内容变了,退出不了,只能保存退出或不保存退出)q! 不保存退出i 光标前面插入原创 2017-10-18 01:37:53 · 272 阅读 · 0 评论 -
linux命令
Linux文件目录:/bin 二进制可执行程序 /boot 内核 启动有关的文件/dev 设备文件 /etc 系统配置文件 /home 所有普通用户的家目录 /lib 系统存放库文件 /mnt 临时挂载点 /proc 虚拟的目录,里面存放的是进程的属性信息/root 管理员的家目录 /usr 自己安装的软件/var 经常改变的内容放在该目录原创 2017-10-18 23:48:37 · 154 阅读 · 0 评论 -
Linux运行级别
Linux运行级别:run revel(查看系统的运行级别) /etc/inittab0 halt 关机1 单用户模式2 多用户模式3 完全的多用户字符界面4 未定义/自定义5 图形化界面6 重启halt :关机(普通用户权限即可)以下命令均需管理员权限才可以使用:shutdown -h原创 2017-10-29 00:15:49 · 141 阅读 · 0 评论 -
gdb调试
jdb具备调试信息才可以调试,需要的是调试的版本编译时,加-g,使程序具有调试信息eg:gcc -o main main.c -g调试命令:l 显示main函数所在的文件的源代码list filename:num 显示filename文件num行上下的源代码b linenum 给指定行添加断点 b funname 给指定函数的第一有效行添加一个断点info break 显示断点信息delete...原创 2017-10-29 00:30:47 · 142 阅读 · 0 评论 -
对进程的操作
ps:显示当前终端中运行的进程(终端:输入输出设备)ps -e:显示所有进程ps -f:显示用户父进程的信息,或称显示详细信息ps -ef:显示所有进程的详细信息kill pid:结束一个进程编号为pid的进程kill -9 pid:强制结束一个进程后台运行的程序加“&”eg:sleep 200&ctrl c:结束一个前台正在运行的程序(前台只能运行原创 2017-10-21 17:23:55 · 183 阅读 · 0 评论 -
static and dynamic
我们通常把一些公用的函数制作成函数库,供其它程序使用函数库分为静态库和动态库两种静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要该静态库静态库是以lib为前缀,紧接着跟静态库名,扩展名为.a动态库在程序编译时不会被链接到目标代码中,而是在程序运行时才被载入,因此在程序运行时还需要动态库存在动态库库名前加lib前缀,其扩展名为.so当静态库原创 2017-10-29 00:47:07 · 512 阅读 · 0 评论 -
fork()
fork:系统调用 -> 复制父进程#include <unistd.h> #include <stdio.h> int main() { pid_t fpid;//fpid表示fork函数返回的值 //printf("fork!"); printf("fork!/n"); fpid = fork();...原创 2017-11-06 01:07:09 · 258 阅读 · 0 评论 -
僵死进程
僵死进程:一、僵死进程的产生在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等,但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等), 直到父进程通过wait/原创 2017-11-27 01:17:52 · 223 阅读 · 0 评论 -
socket 编程——并发服务器
一般的面向连接服务器程序的代码框架: 并发服务器的一般模型:eg:大写字符串转小写字符串(可并发执行)〈通过fork实现〉ser.c:#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<sys/socket.h>#include<arpa/inet.h>#in...原创 2018-04-12 02:44:03 · 283 阅读 · 0 评论