Linux环境编程
文章平均质量分 70
兔晓侠
自动化专业在校硕士
展开
-
netstat命令
Netstat 编辑 在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统转载 2015-11-23 13:36:58 · 331 阅读 · 0 评论 -
epoll的多线程安全性问题
最近在尝试模仿muduo网络库封装自己的mini网络库,陈硕老师推荐使用one loop per thread + 非阻塞IO的编程模型。于是准备采用一个主事件循环专门读取处理新的连接,而用数个(根据CPU核心数确定)从线程处理各个连接的业务的方式来实现新的服务器,这里就牵涉到一个问题,如果读取连接的主线程向从线程添加新的监听事件的时候会不会存在线程安全性的问题?epoll_ctl是线程安全的,但是原创 2016-07-22 19:32:36 · 7525 阅读 · 0 评论 -
Mudoo网络库中封装的互斥量与条件变量
Mudoo网络库中使用RAII的方式封装了同步原语,自己实现了互斥锁和条件变量,这里记录一下方便自己理解。 其中最主要的几个类有:MutexLock、MutexLockGuard、Condition以及CountDownLatch。其中MutexLock和Condtion是对于posix线程库中的互斥锁和条件变量的封装,MutexLockGuard和CountDownLatch则是对他们的封装原创 2016-06-13 18:06:34 · 752 阅读 · 0 评论 -
TCP协议的send与recv以及链接的阻塞与关闭问题
Tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下, send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大小要大,那么send函数立即返回,同时向网络中发送数据;否则,send向网络发送缓存中不能容纳的那部分转载 2016-05-12 10:34:14 · 5160 阅读 · 0 评论 -
单例模式与复制、赋值、析构
原文地址:http://www.cnblogs.com/loveis715/archive/2012/07/18/2598409.html“请写一个Singleton。”面试官微笑着和我说。 “这可真简单。”我心里想着,并在白板上写下了下面的Singleton实现:复制代码 1 class Singleton 2 { 3 public: 4 static Singleton转载 2016-03-07 11:15:59 · 2669 阅读 · 0 评论 -
【转】使用gdb和core dump迅速定位段错误
使用gdb和core dump迅速定位段错误关键字:gdb、段错误、core dump一、什么是core dumpcore:内存、核心的意思;dump:抛出,扔出;core dump:前提:当某程序崩溃的一瞬间,内核会抛出当时该程序进程的内存详细情况,存储在一个名叫core.xxx(xxx为一个数字,比如core.699)的文件中。二、更改生成的core文件的大小限制可见,core文件是内核生成的转载 2016-02-05 21:25:22 · 413 阅读 · 0 评论 -
GDB多线程调试方法
一、多线程调试 多线程调试重要就是下面几个命令:info thread 查看当前进程的线程。 thread 切换调试的线程为指定ID的线程。 break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。 set scheduler-locking off|on|step,这个是问得最多的。在使用step或者continue命令调试转载 2016-02-05 21:15:06 · 335 阅读 · 0 评论 -
文章标题
1.什么是可重入性重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。可重入的函数必须满足以下三个条件:(1)可以在执行的过程中可以被打断;(2)被打断之后,在该函数一次调用执行完之前,可以再次被调用(或进入,reentered)。(3)再次调用执行完之后,被打断的上次调用可以继续恢复执行,并正确执行。可重入函数可以在任意时刻被中转载 2015-12-05 20:04:52 · 260 阅读 · 0 评论 -
【转】getopt()和getopt_long()
int getopt(int argc, char * const argv[], const char *optstring); #include 该函数用来解析命令行参数。前两个参数设为main函数的两个参数。optstring设为由该命令要处理的各个选项组成的字符串。选项后面带有冒号':'时,该选项是一个带参数的选项。例如:make -f filename -n-转载 2016-01-04 21:10:49 · 254 阅读 · 0 评论 -
Linux分离式线程
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状态的,这种情况下,原有的线程等待转载 2015-12-01 19:52:39 · 433 阅读 · 0 评论 -
Linux后台开发的要求
Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握3、awk sed需掌握4、共享内存的使用实现原理、然后共享内存段被映射进进程空转载 2015-11-25 21:35:50 · 394 阅读 · 0 评论 -
inux中c语言errno的使用
inux中c语言errno的使用Sep252013作者:信海龙 发布:2013-09-25 10:17 分类:c&c++, 编程语言 暂无评论 在linux中使用c语言编程时,errno是个很有用的动动。他可以把最后一次调用c的方法的错误代码保留。但是如果最后一次成功的调用c的方法,errno不会改变。因此,只有在c语言函数返回值异常时,再检测errno。e转载 2015-11-22 17:39:52 · 551 阅读 · 0 评论 -
文章标题
转载自:http://my.oschina.net/renhc/blog/35116标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。子进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出pope转载 2015-11-22 17:54:41 · 255 阅读 · 0 评论 -
每个计算机工程师都应该知道的数字列表
L1 cache reference: 0.5 ns Branch mispredict: 5 ns L2 cache reference: 7 ns Mutex lock/unlock: 100 ns Main memory reference: 100 ns Compress 1K bytes with Zippy: 10,000 ns Send 2K bytes over 1 Gb转载 2016-12-23 16:04:49 · 487 阅读 · 0 评论