Linux
文章平均质量分 78
人工智能year
这个作者很懒,什么都没留下…
展开
-
文件指针和文件描述符的区别
在linux系统中把设备和普通文件也都看做是文件,要对文件进行操作就必须先打开文件,打开文件后会得到一个文件描述符,它是一个很小的正整数,是一个索引值。 内核会为每一个运行中的进程在进程控制块pcb中维护一个打开文件的记录表,每一个表项都有一个指针指向打开的文件,上边的索引值是记录表的索引值。 文件描述符的优点:兼容POSIX标准,许多系统调用都依赖于它;缺点是不能转载 2015-05-14 14:31:42 · 1073 阅读 · 0 评论 -
Linux下DIR,dirent,stat等结构体详解
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。 首先说说DIR这一结构体,以下为DIR结构体的定义: struct __dirstream { void *__fd; char *__data; int __entry_data转载 2015-05-14 13:54:39 · 480 阅读 · 0 评论 -
进程与线程
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从原创 2015-05-14 14:58:42 · 330 阅读 · 0 评论 -
标准IO与文件(系统)IO 的区别
先来了解下什么是标准IO以及文件IO。 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。 (1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或输出中遇到新行符时,标准I原创 2015-05-14 14:38:55 · 1903 阅读 · 0 评论 -
浅谈无缓存I/O操作和标准I/O文件操作区别
首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(ApplicationProg转载 2015-05-14 14:51:38 · 477 阅读 · 0 评论 -
Linux多线程同步的几种方式
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。 1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。 int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_原创 2015-05-19 15:25:10 · 376 阅读 · 0 评论