![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
tanqiuwei
这个作者很懒,什么都没留下…
展开
-
LINUX 简单的串口读写实例
http://blog.csdn.net/mochouxiyan/article/details/2839509#include /*标准输入输出定义*/ #include /*标准函数库定义*/#include /*Unix 标准函数定义*/#include #include #includ转载 2012-05-21 19:07:19 · 1091 阅读 · 0 评论 -
dd命令和cp命令的区别
dd命令和cp命令的区别 cp与dd的区别在于cp可能是以字节方式读取文件,而dd是以扇区方式记取。显然dd方式效率要高些。dd最大的用处是他可以进行格式转换和格式化。dd是对块进行操作的,cp是对文件操作的。比如有两块硬盘,要将第一块硬盘里的数据复制到第二块硬盘上dd if=/dev/hda of=/dev/hdc bs=4 count=1024hda和hd转载 2014-05-04 16:40:00 · 10390 阅读 · 0 评论 -
如何利用socket进行HTTP访问
如何利用socket进行HTTP访问http://blog.csdn.net/wbczyh/article/details/2117094平常我们要访问某个URL一般都是通过浏览器进行:提交一个URL请求后,浏览器将请求发向目标服务器或者代理服务器,目标服务器或者代理服务器返回我们所需要的数据,浏览器接收到这些数据后保存成文件并进行显示。下面我们看看如何自己利用wins原创 2014-04-09 10:54:57 · 38642 阅读 · 0 评论 -
select函数详解及实例分析
Select函数在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻转载 2014-04-11 12:11:48 · 523 阅读 · 0 评论 -
如何提高服务器的并发量
从哲学上说,消除瓶颈是提高服务器性能和并发能力的唯一途径。如果你能够消除所有的瓶颈,你就能够最大的发挥硬件性能,让系统的性能和并发数到达最佳。采用多线程多核编程,使用事件驱动或异步消息机制,尽量减少阻塞和等待操作(如I/O阻塞、同步等待或计时/超时等)。原理:1、多线程多核编程,消除cpu瓶颈。2、采用IOCP或epoll,利用状态监测和通知方式,消除网络I/O阻塞瓶颈。3原创 2014-05-14 11:31:18 · 5251 阅读 · 0 评论 -
gcc动态链接库基本知识
source: http://hi.baidu.com/jouby/blog/item/b94f841f99885dc0a7866928.html 一、GNU gcc的编译工具用法 我们先来写一个简单的C程序:hello.c 1. #include 2. 3. void print_hello() { 4. printf("Hello World/n"); 5. } 6. 7. int main(转载 2014-08-15 09:46:19 · 1066 阅读 · 0 评论 -
使用gdb调试网络程序时,收到SIGPIPE信号异常退出问题
转自:http://www.diybl.com/course/3_program/c++/cppjs/20090831/173152.html我写了一个服务器程序, 在Windows下在cygwin环境编译后执行, 然后用C#写了多线程客户端进行压力测试. 程序一直运行正常. 但当在Linux下测试时, 总是莫名退出. 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Br转载 2014-09-24 12:07:33 · 2761 阅读 · 0 评论 -
gdb中忽略信号处理 SIGPIPE
gdb中忽略信号处理 SIGPIPE GDB调试网络程序时,会遇到SIGPIPE信息,默认GDB会把程序停下来,即使程序使用signal(SIGPIPE, SIG_IGN);来忽略信号。用handle命令设置一下缺省的signal的处理行为即可: handle SIGPIPE nostop print如果连信息提示都不想看见,可以这样设置:转载 2014-09-24 12:03:59 · 8832 阅读 · 0 评论 -
linux下用C编写的基于smtp的邮件发送程序
1、安装库libesmtp-develyum install libesmtp-devel或apt-get install libesmtp-devel如果没法用命令安装,就上http://www.stafford.uklinux.net/libesmtp/自己下载包安装。2、不认证即可发信息#define _XOPEN_SOURCE#include #in转载 2013-12-05 15:03:28 · 12195 阅读 · 0 评论 -
共享内存
http://blog.csdn.net/wc7620awjh/article/details/7721331共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:共享内存的实现分为两个步骤:一、 创建共享内存,转载 2015-04-17 10:45:35 · 639 阅读 · 0 评论 -
进程间通信IPC之--共享内存
每个进程各自有不同的用户地址空间,任何一个进 程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲 区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)如下图所示:进程间通信共七种方式:转载 2014-04-01 11:11:53 · 548 阅读 · 0 评论 -
不带缓冲区open和带缓冲区的fopen的区别:
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”转载 2014-03-06 17:45:51 · 6160 阅读 · 0 评论 -
shell测试
shell测试2011-07-14 00:17:54 如何调试Shell脚本1) 检查语法错误:一般来说我们可以通过修改shell脚本的源代码,令其输出相关的调试信息来定位错误,那有没有不修改源代码来调试shell脚本的方法呢?答案就是使用shell的执行选,下面是一些常用选项的用法:-n 只读取shell脚本,但不实际执行-x 进入跟踪方式,显示所执行的每转载 2012-10-10 11:09:29 · 701 阅读 · 0 评论 -
配置core文件
一、core文件和gdb的结合使用调试 -- 仅限在同一终端执行一次下面2条//cd /proc/sys/kernel1、echo "/tmp/core-%e-%p-%t" > core_pattern // 指定生成core文件的路径和名称2、echo "1" > core_uses_pid // 生成core文件带pid作为扩展名转载 2013-08-19 17:55:23 · 858 阅读 · 0 评论 -
linux信号
信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以转载 2013-10-15 18:47:22 · 521 阅读 · 0 评论 -
父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
http://blog.sina.com.cn/s/blog_87cd5a480100z7xp.htmlhttp://blog.163.com/kissinger_1984/blog/static/168992520104255263314/wait的函数原型是: #include /* 提供类型pid_t的定义 */ #inclu转载 2013-10-16 14:41:39 · 850 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数argc。数组元素初值由系统自动赋予。比如: int main(int argc, char* argv[]转载 2013-10-16 14:04:54 · 872 阅读 · 0 评论 -
线程池
http://www.cnblogs.com/newth/archive/2012/05/09/2492459.htmlhttp://hi.baidu.com/boahegcrmdghots/item/f3ca1a3c2d47fcc52e8ec2e1一个Linux下C线程池的实现 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和转载 2013-10-23 15:13:24 · 1103 阅读 · 0 评论 -
open/read/write和fopen/fread/fwrite的区别
open/read/write和fopen/fread/fwrite的区别 open:系统调用,返回的是文件描述符,即文件句柄,是文件在文件描述副表里的索引。fopen:C语言库函数,返回的是一个指向文件结构的指针。fopen是ANSI C标准中的C语言库函数,在不同的操作系统中应该调用不同的内核API,UNIX环境下,fopen是对open的封装。文件描述符是UNIX/Linux转载 2013-11-12 14:42:17 · 1135 阅读 · 0 评论 -
Linux线程-互斥锁pthread_mutex_t应用
锁的应用/* ************************************************************************ * Filename: m_mutex.c * Description: * Version: 1.0转载 2014-03-11 14:52:38 · 3953 阅读 · 0 评论 -
条件变量
http://blog.csdn.net/ffilman/article/details/48719201.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误转载 2014-03-12 16:25:03 · 461 阅读 · 0 评论 -
内核层读写应用层文件
内核层读写应用层文件原创 2016-12-21 14:55:20 · 1210 阅读 · 0 评论