Linux进程间通信(一)管道

一个进程在管道的尾部写入数据,另一个进程从管道的头部读出数据。 管道包括无名管道和有名管道两种,前者只能用于父进程和子进程间的通信,后者可用于运行于同一系统中的任意两个进程间的通信。 管道通信-特点#include #include #include #include #include...

2016-01-31 14:25:30

阅读数:470

评论数:0

Linux进程间通信(二)FIFO

1.从FIFO中读取数据: 约定:如果一个进程为了从FIFO中读取数据而阻塞打开了FIFO,那么称该进程内的读操作为设置了阻塞标志的读操作。 (1)如果有进程写打开FIFO,且当前FIFO为空,则对于设置了阻塞标志的读操作来说,将一直阻塞下去,直到有数据可以读时才继续执行;对于没有设置阻塞标志的读...

2016-01-30 17:22:53

阅读数:419

评论数:0

sync、fsync、fdatasync三个函数以及O_SYNC标志位的区别

在大多数的unix/linux对磁盘io的写操作都是通过缓存来完成的,基本的原理如下:当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队...

2016-01-19 19:43:30

阅读数:482

评论数:0

c/c++中文件的操作大全,可以了解向文件读取一个结构体

文件的基本概念   所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分...

2016-01-14 23:33:00

阅读数:1706

评论数:0

文件结构体struct file(Linux 2.6.23内核) (转)

struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是: struct file {         /*          * fu_list becomes invalid after file_free is c...

2016-01-13 18:04:48

阅读数:559

评论数:0

Linux 文件操作总结

文件是linux中的一个重要概念。在Linux中,一切(几乎一切)都是文件。简单的说,C中基本的的printf()函数,scanf()函数,其实都属于文件操作。 对于文件操作,虽然都是通过函数调用的方式实现,却还是能分为两类:系统调用和库函数。 这篇文章将先介绍linux中文件的概念,系统调用...

2016-01-12 23:58:28

阅读数:289

评论数:0

系统调用、POSIX、C库、系统命令和内核函数

第5章 系统调用 大部分介绍Linux内核的书籍都没有仔细说明系统调用,这应该算是一个失误。内核发展到现在,我们实际需要的系统调用现在已经十分完美,从这个意义上来说,再耗费宝贵的时间去研究系统调用的实现是毫无意义的事情。 然而,对于希望能够对内核有更深理解的我们来说,仔细研究少量系统调用仍是十...

2016-01-12 23:32:42

阅读数:803

评论数:0

linux系统调用和库函数调用的区别

Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Wo...

2016-01-12 23:30:54

阅读数:322

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭