
Linux
文章平均质量分 89
路之遥_其漫漫
这个作者很懒,什么都没留下…
展开
-
Linux内核的总结认识
转载博文: http://www.linuxdiyf.com/linux/11234.html 1.内核是怎样实现其管理的职能?以前在学校时一直不能理解内核是怎么做管理?比如内核如何知道在什么时候对各个进程做调度,又在什么时候知道缺页从而执行内存比如内核如何知道在什么时候对各个进程做调度,又在什么时候知道缺页从而执行内存管理的代码,内核为什么在会需要它管理的时候被唤醒,进程转载 2017-01-04 21:04:29 · 334 阅读 · 0 评论 -
阻塞IO、非阻塞IO的区别
1.类与类之间的关系:依赖,实现,泛化(继承),关联,组合,聚合。 1)依赖(虚线):一个类是 另一个类的函数参数 或者 函数返回值。 2)实现(实线加小圆):对纯虚函数类(抽象类)的实现。 3)继承 即 泛化(实线加空心三角形,从子类指向父类):表示一个类与另一个类之间的继承关系; 4)关联(实线):一个类是另一个类的成员变量。 5)聚合(菱形加实线):整体和部分的关系。不太紧密的(如:汽车与发原创 2017-03-17 18:45:49 · 36390 阅读 · 5 评论 -
Linux编程获取本地IP
1 #include 2 #include 3 #include 4 #include in.h> 5 #include string.h> 6 #include 7 #include 8 9 10 //获取本地IP地址11 char *getIP()12 {13 int sock_get_ip; 14 char ipadd原创 2017-03-17 18:46:38 · 277 阅读 · 0 评论 -
Linux间的进程通信;以及子进程的创建
1 "-----第六天-----------------------------------------------------------------------------" 2 3 1.版本控制:svn/git; 4 5 2.进程的概念: 6 1)程序和进程; 7 每个进程操作系统会为它分配 0-4G 的虚拟内存空间(32位操作原创 2017-03-17 18:44:50 · 561 阅读 · 0 评论 -
Linux系统编程之----》信号
1 "===信号========================================================================================================================" 2 一.信号的概念: 3 1.本质: 4 软中端;信号通过内核发送,内核处理的。 5原创 2017-03-17 18:44:55 · 311 阅读 · 0 评论 -
多进程、多线程并发服务器代码
1.单进程服务器: 1 #include 2 #include 3 #include 4 #include 5 #includestring.h> 6 #include 7 #include 8 #include 9 #include10 11 #define SERV_PORT 888812 13 int std_err(const cha原创 2017-03-17 18:45:00 · 445 阅读 · 0 评论 -
简单服务器的问题避免
一。1. 多进程服务器; 一个管理进程, 当客户端链接时, 起一个子进程与客户端进程通信;2. 客户端:普通客户端程序, 与服务器之间保持长链接。3.问题: 此时设计到一个问题,当起 n 个客户端连接服务器时;服务器会产生 n 个子线程,用于各客户端通信,此时,加入一个客户端主动关闭链接, 服务器应该关掉它对应的子进程,并对这个子进程进行回收,防止产生僵原创 2016-12-28 08:39:36 · 525 阅读 · 0 评论 -
sigsetjmp()与siglongjmp()
使用sigsetjmp()与siglongjmp()int sigsetjmp(sigjmp_buf env, int savesigs);void siglongjmp(sigjmp_buf env, int val);解决竞态问题的另一个办法: 从信号函数中调用siglongjmp(). siglongjmp() 作用: 局部跳转,使用它可以从一个函数跳至另一个函数. 使用sigs原创 2017-03-27 18:34:40 · 1967 阅读 · 0 评论 -
TCP/IP 数据流套接字传输注意事项
1. IP地址修改后关闭原来套接字 问题的出现: 一个本机客户端已链接的套接字, 在修改本机IP后, 再去关闭该链接服务器套接字; 出现的状况: close() 或shutdown() 显示成功. 注意: 此时去服务器查看套接字状态, 发现该套接字在服务器上并未关闭, 继续处于链接ESTABLISHED状态. 在关闭链接套接字前, 一定要 确保此套接字对应的IP地址不被修改..原创 2017-04-11 14:18:42 · 963 阅读 · 0 评论 -
iptables详解
一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网转载 2017-04-12 13:11:17 · 287 阅读 · 0 评论 -
多线程开发中遇到的问题
1.最近开发项目:大体框架如下: 1. 主线程接收命令, 放进队列 1 中. (命令分 2 种: 本地执行命令; 网路传输命令) 2. 处理线程: 从队列 1 中取出依次取出命令进行处理; 分两种情况: 1. 取到本地命令, 直接执行, 并立即将结果放入队列 2 中, 使用信号量 通知主线程 接收处理结果; 2. 网络传输命令, 本地立即组原创 2017-03-17 18:49:07 · 1125 阅读 · 0 评论 -
Linux 线程调度与优先级设置
转载:http://blog.youkuaiyun.com/a_ran/article/details/43759729 线程调度间的上下文切换什么是上下文切换?如果主线程是唯一的线程,那么他基本上不会被调度出去。另一方面,如果可运行的线程数大于CPU的数量,那么操作系统最终会将某个正在运行的线程调度出去,从而使其他线程能够使用CPU。这将导致一次上下文切换。在这个过程中将保存当前运行线程的执行上转载 2017-03-17 18:47:56 · 8535 阅读 · 0 评论 -
GoLang 类型转换和类型断言
Go语言中的强制类型转换 与 C语言的区别是: char b = 9; int a = (int)b; _注意:此处括号中为将强制转换的类型_ ; var Byte b = 9 var uint a = int(b) _注意:此处括号中为 将要转换的值_ Go 的类型断言和switch判断, 两种方式: Comma-ok断言的语法是:value, ok := element.(T)。el原创 2017-07-11 16:58:40 · 952 阅读 · 0 评论 -
编译动态库与静态库的注意事项和方法
一 .编译动态库:使用动态库的四种方法: 1. export LD_LIBRARY_PATH=/usr/lib64/( so所在路径) 只对当前用户的终端生效, 其他用户没用。 2.在该 sudo vim /etc/ld.so.conf文件下; 将动态库的路径加进来;然后 sudo ldconfig -v 进行更新。(这种方法的弊 端,可能其他的操作系统没有这原创 2017-03-17 18:46:08 · 730 阅读 · 0 评论 -
Linux 中write()函数的出错情况及处理
write函数首先将进程需要发送的数据先放在进程缓冲区中,然后向socket的发送缓冲区进行拷贝,在此,可能出现这样情况,即当进程缓冲区中的数据量大于此时发送缓冲区中所能接受的数据量时,若此时处于阻塞模式,应用进程将会被挂起,直到进程缓冲区中的数据全部拷贝到发送缓冲区中,注意此时内核也不会返回write函数,因此,在阻塞模式下,若write函数正常返回,这也并不代表数据已经完成被对方进程接收,至多原创 2017-03-17 18:46:46 · 11170 阅读 · 0 评论 -
state Threads 开源库介绍
译文在后面。State Threads for Internet ApplicationsIntroductionState Threads is an application library which provides a foundation for writing fast and highly scalable Internet Applications on UNIX-like转载 2017-03-17 18:48:35 · 542 阅读 · 0 评论 -
多线程程序中死锁的分析和解决方案
转载: http://blog.sina.com.cn/s/blog_48d4cf2d0100mx4n.html死锁是由于不同线程按照不同顺序进行加锁而造成的。如:线程A:对lock a加锁 => 对lock b加锁 => dosth => 释放lock b => 释放lock a线程B:对lock b加锁 => 对lock a加锁 => dosth => 释放lock a => 释放l转载 2017-03-17 18:48:47 · 377 阅读 · 0 评论 -
Linux 关机 休眠, 关闭移动设备自动挂载 命令
"+++++++++++++++++++++++++ Linux 关机、休眠命令 +++++++++++++++++++++++++++++++++++++++"indows7关机、重启、待机、休眠命令 Windows7下一些关机、重启、待机、休眠命令,通过Autohotkey可实现快速关机等操作。 ;立即关机,无提示、延时。shutdown -p;立即重启shutdown -r -t 00;进入原创 2017-03-17 18:49:16 · 653 阅读 · 0 评论 -
Linux下 sleep函数的注意事项
1. 休眠sleep(unsigned int)为线程内操作 所以如果不同线程,信号量SIGALRM是不能中断sleep(); 编写程序进行测试//timercreate_demo.cpp#include #include #include #include #include void SignHandler(int iSignNo);void testTimer原创 2017-03-17 18:48:43 · 4617 阅读 · 0 评论 -
Linux平台上实现队列
转载: http://my.oschina.net/sundq/blog/203600Linux上目前有两种事件通知方式,一种是线程条件变量,一种是利用eventfd实现事件通知,下面介绍一下利用这两种方法实现异步队列的方法。线程条件变量相关函数介绍pthread_cond_init:初始化一个线程条件变量。pthread_cond_wait:等待条件触发。pthread_cond_转载 2017-03-17 18:48:39 · 391 阅读 · 0 评论 -
Linux上寻找并杀死僵尸进程
转载: http://blog.youkuaiyun.com/shanzhizi/article/details/47320595linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进程的方法首先,我们可以用top命令来查看服务器当前是否有僵尸进程,在下图中可以看到僵尸进程数的提示,如果数字大于0,那么意味着服务器当前存在有僵尸进程下面,我们用ps和grep命令寻找僵尸进程 p转载 2017-03-17 18:48:24 · 790 阅读 · 0 评论 -
多线程, 进程, 线程间同步
一. 线程\进程的的区别: 1.多线程可以并行执行,并且资源是共享的,所有线程的资源都在同一块内存区,对应的全局变量所有线程都是可见的。每个线程都操作同一块内存,都可以读写申请的全局变量多进程的话,不同的进程资源在不同的内存区,资源是独立的。每个进行都操作自己的内存块. 2. 可以说定义变量和之前没什么区别,不过可能会多个线程异步对他进行操作,那也就存在一些同步机制而已。 3. 在没原创 2017-03-17 18:48:04 · 369 阅读 · 0 评论 -
协程与多线程的区别
转载:----------------------------------------------------------------------第一篇------------------------------------------------------------------- coroutine和真正的thread的区别挺多,但是也不好说是限制,须知Contiki的使转载 2017-03-17 18:48:00 · 2387 阅读 · 0 评论 -
Linux动态库的编译与使用
转载: http://hi.baidu.com/linuxlife/blog/item/0d3e302ae2384d3a5343c1b1.htmlLinux下的动态库以.so为后缀,我也是初次在Linux下使用动态库,写一点入门步骤,以便以后能方便使用。第一步:编写Linux程序库文件1.动态库接口文件//动态库接口文件getmaxlen.h#ifndef _GETMAXLEN_H_原创 2017-03-17 18:47:48 · 750 阅读 · 0 评论 -
Linux中多线程信号的处理
1. 博文:Linux多线程中使用信号-1 http://blog.youkuaiyun.com/qq276592716/article/details/73252502. 博文:Linux多线程信号总结 http://blog.chinaunix.net/uid-26932153-id-3227403.html3.博文: sigprocmask()函数实例详解 http://blog.si原创 2017-03-17 18:47:25 · 404 阅读 · 0 评论 -
gdb调试
gdb 调试: 1.得到包含调试信息的可执行性程序: gdb -g main.c -o app -I ../include ; 2.运行调试程序: gdb 可执行程序名; 3.命令: 1)执行命令:两种 start 一行一行执行,执行过程中可以添加其他参数调试。 run 直接执行到程序结束。 2)查看程序内容: l (什么都不加);l + 行号; l + 函数名; l原创 2017-03-17 18:47:21 · 339 阅读 · 0 评论 -
Linux编程下EAGAIN和EINTR宏的含义及处理
Linux中的EAGAIN含义 在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。 linux下使用write\send发送数据报 EAGAIN : Resource temporarily unavailable 错 首先是我把套接字设置为异步的了,然后在使用write发送数据时采取的方式是循环发送大量的原创 2017-03-17 18:46:52 · 7592 阅读 · 0 评论 -
GitHub操作
在github上 创建一个git仓库回到本地, 初始化当前 git环境(此步骤只需要一次) git init (会在当前出现一个.git隐藏文件 ) 将本地路径 跟远程的git路径 相关联(此步骤只需要一次) git remote add origin url查看本地仓库链接的远程仓库地址 git remote -v 配置git的用户名和密码(此步骤只需要一次) git原创 2017-04-19 13:14:07 · 400 阅读 · 0 评论