Linux
文章平均质量分 89
吖桂
这个作者很懒,什么都没留下…
展开
-
read/write函数与(非)阻塞I/O的概念
read/write 函数read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count);返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0参数count是请求读取的字节数,读上来的数据转载 2014-11-30 13:39:36 · 311 阅读 · 0 评论 -
Linux系统编程--read/write
read/write read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读转载 2015-04-02 13:04:22 · 299 阅读 · 0 评论 -
浅谈无缓存I/O操作和标准I/O文件操作区别 (转载)
先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(Application Program转载 2015-03-18 19:59:44 · 220 阅读 · 0 评论 -
《unix高级环境编程》进程关系——控制终端、作业控制和守护进程
首先总结下进程、进程组与会话之间的关系。进程属于一个进程组,进程组属于一个会话,会话可能有或没有控制终端。以下是一些基本概念: 僵死进程:一个子进程已经终止,但是其父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源),则该子进程就成为僵死进程。消灭僵尸进程的唯一方法是终止其父进程。 孤儿进程:子进程的父进程已经终止,但是该进程依然存在,则称该子转载 2015-04-08 19:07:58 · 252 阅读 · 0 评论 -
Linux环境进程间通信(二): 信号(上)
一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强转载 2015-03-25 15:04:22 · 261 阅读 · 0 评论 -
Linux Socket编程
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型转载 2014-11-30 12:57:24 · 313 阅读 · 0 评论 -
Segmentation Fault in Linux(段错误)
何为段错误:当程序试图访问不被允许访问的内存区域(比如,尝试写一块属于操作系统的内存),或以错误的类型访问内存区域(比如,尝试写一块只读内存)。这个描述是准确的。SIGSEGV是在访问内存时发生的错误,它属于内存管理的范畴SIGSEGV是一个用户态的概念,是操作系统在用户态程序错误访问内存时所做出的处理当用户态程序访问(访问表示读、写或执行)不允许访问的内存时,产生SIGS原创 2014-11-30 18:47:43 · 401 阅读 · 0 评论 -
Linux多线程编程(不限Linux)
前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印“this is thread1”,并将g转载 2015-01-06 23:02:26 · 212 阅读 · 0 评论 -
重定向和管道
UNIX命令有三个有效的数据流:标准输入,标准输出,标准错误。管道是从一个程序进程向另一个程序进程单向传送信息的技术。与其它形式的进程间通讯,如IPC、MESSAGE PASSING、SOCKET等不同,管道特点是单向的。通常,管道把一个进程的输出传给另一进程作为输入。在接受进程接收信息前,系统临时保留管道信息。UNIX shell中,管道在命令行中由一个竖杠(|)表示。管道左边的转载 2014-12-07 20:00:32 · 236 阅读 · 0 评论 -
getchar,putchar等函数详解
fgetc (由文件中读取一个字符)头文件: include函数声明: int fgetc(FILE * stream);说明:fgetc()从参数stream所指的文件中读取一个字符.若读到文件尾而无数据时便返回EOF.字符读取函数fgetc()可从文件数据流中一次读取一个字符,然后读取光标移动到下一个字符,并逐步将文件的内容读出返回值 : getc(转载 2014-12-07 20:17:29 · 441 阅读 · 0 评论 -
Ubuntu 配置tftp服务
tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统1、sudo apt-get install tftp-hpa tftpd-hpa xinetd2、建立配置文件sudo vi /etc/xinetd.d/tftp新建文件tftptftp内容:service tftp{d转载 2014-12-25 13:08:46 · 178 阅读 · 0 评论 -
linux文件链接
链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。我们首先来了解一下几个名词:索引节点(inode)要了解链接,我们首先得了解一个概念,叫索引节点(inode)。在Linux系统中,内核为每一个新创建的文件分配一个Inode(原创 2015-04-15 11:29:43 · 215 阅读 · 0 评论