linux应用学习
xuflyme
这个作者很懒,什么都没留下…
展开
-
setjmp和longjmp函数使用详解
非局部跳转语句---setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#include Int setjmp(jmp_buf env); 返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值Void longjmp(jmp_buf env,转载 2013-11-18 15:56:47 · 532 阅读 · 0 评论 -
HTTP协议的学习
HTTP报文格式HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字转载 2014-03-06 11:08:35 · 469 阅读 · 0 评论 -
getaddrinfo函数
今天在看完APUE第16章:网络IPC:套接字后,就开始编写书中的示例代码,结果出现了问题:调用getaddrinfo函数时,返回错误:Servname not supported for ai_socktype,觉得很费解,就直接google之,发现下面这篇好文,不仅解决了问题,还使我更加理解了如何使用getaddrinfo来编写服务器/客户端程序。 原文地址:blog.csdn转载 2013-12-13 21:38:32 · 704 阅读 · 0 评论 -
守护进程,setsid()函数
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的Uni转载 2013-12-06 09:53:54 · 514 阅读 · 0 评论 -
qt 的close和系统的close冲突。close(),close(fd)
系统函数使用::来调用,所以close(fd)应该这样:::close(fd);其他函数亦然。注意,别忘了加头文件:#include /*Unix 标准函数定义*/ #include /*文件控制定义*/转载 2013-12-06 11:07:26 · 1261 阅读 · 0 评论 -
dup() 和 dup2()函数的介绍
dup() 和 dup2() 2011-10-07 11:06:31| 分类:Linux学习心得 | 标签:dup dup2 linux c |字号 订阅dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。#include int dup(int newfd);int dup2(int n转载 2013-12-05 18:51:08 · 476 阅读 · 0 评论 -
linux 信号量
Linux信号量(semaphore)是一种互斥机制。即对某个互斥资源的访问会收到信号量的保护,在访问之前需要获得信号量。在操作完共享资源后,需释放信号量,以便另外的进程来获得资源。获得和释放应该成对出现。 获得信号量集,需要注意的是,获得的是一个集合,而不是一个单一的信号量。 #include #include #inclu转载 2013-12-11 18:45:40 · 689 阅读 · 0 评论 -
unix源码结构
apue.h在Fedora14下开发环境搭建学习linux有一段时间了,刚开始学Linux C 系统编程时用的书是,这本书感觉入门学习还不错,里面的程序易理解,但看了K&R的巨著,还是不太深厚(国人编书的经常犯的毛病)好像讲了什么、其实什么都没讲。这些天从网上买了一本《UNIX环境高级编程》。里面出现作者Rago自编的apue.h头文件,于是想从网上下载源码。网上搜了几篇,感觉按照参考文章转载 2013-11-18 18:46:35 · 2087 阅读 · 0 评论 -
poll函数
poll函数起源于SVR3,最初局限于流设备。SVR4取消了这种限制,允许poll工作在任何描述字上。poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 1.#include 2. 3.int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); 4.转载 2013-12-08 20:11:30 · 420 阅读 · 0 评论 -
建议性锁和强制性锁
fcntl有强大的功能,它能够复制一个现有的描述符,获得/设置文件描述符标记,获得/设置文件状态标记,获得/设置异步I/O所有权,获得/设置纪录锁。当多个用户共同使用,操作一个文件的情况,Linux通常采用的方法就是给文件上锁,来避免共享资源产生竞争的状态。fcntl文件锁有两种类型:建议性锁和强制性锁建议性锁是这样规定的:每个使用上锁文件的进程都要检查是否有锁存在,当然还得尊重已转载 2013-12-08 19:23:38 · 637 阅读 · 0 评论 -
Linux内核中的进程组及会话
转自:http://shake863.javaeye.com/blog/187085 将阐述Linux内核中的如下几个概念 1) 进程组 2) 会话 3) 控制终端 1.概念: a)进程组 Shell 上的一条命令行形成一个进程组 每个进程属于一个进程组 每个进程组有一个领头进程 进程组的生命周期到组中最后一个进程终止, 或加入其他进程组为止转载 2013-11-14 21:42:42 · 486 阅读 · 0 评论 -
linux线程同步--条件变量
1. 相关函数 #include pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_转载 2013-11-26 15:03:34 · 467 阅读 · 0 评论 -
select,epoll,poll比较
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描转载 2013-11-23 09:48:51 · 608 阅读 · 0 评论 -
linux下core文件调试方法
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 (1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 (2)使用ulimit -c filesize命令,可以限转载 2014-04-26 16:45:48 · 465 阅读 · 0 评论