UNIX系统编程
文章平均质量分 78
BruceZhang
计算机专业的一个小学生
展开
-
UNIX系统编程(1)
注:本文来自“网易”博主,仅阅读,学习第一章:什么是系统编程 UNIX系统编程,简单的说就是“C语言+系统调用(system call)”,学会了C语言再知道一些系统调用的方法,其实就可以进行UNIX系统编程了。那什么又是系统调用呢,其实初学者就把它看当成是函数用就可以了。这些“函数”是干什么用的呢,大家知道操作系统内核管理着我们的计算机资源,比如CPU,内存,硬盘等等。应原创 2013-02-12 21:37:47 · 2753 阅读 · 0 评论 -
有名管道(FIFO)实现无亲缘关系的客户服务器
FIFO(也称为有名管道)是first in first out的意思,也就是队列的特点。有名管道也是一个单向的数据流,但它与管道又有写区别。有名管道是有名字的,每一个FIFO对应于一个路径名,正因为这一点,有名管道可以允许非亲缘关系的进程访问同一个FIFO。另外,有名管道存在于磁盘当中,而管道存在于内存当中,通信结束后,有名管道的文件本身仍热存在,但是管道已经释放了。有名管道与文件也是有区别的,原创 2013-03-15 16:26:14 · 2081 阅读 · 0 评论 -
UNIX中的restrict
restrict是c99引入的,它只可以用于限定指针,并表明指针是访问一个数据对象的唯一且初始的方式. 仅当第二个指针基于第一个时,才能对对象进行存取.例子 考虑下面的例子: int ar[10]; int * restrict restar=(int *)malloc(10*sizeof(int)); int *par=ar; 这里说明restar是访原创 2013-03-14 09:41:57 · 2610 阅读 · 0 评论 -
UNIX中的文件和目录
文件--索引节点POSIX没有强制磁盘上的文件采取任何特定的表示方法,但是传统的UNIX文件都是按照改进的树状结构来实现的。目录项中包含一个文件名 和一个定长结构的引用(索引节点)。索引节点包含与文件长度、文件位置、文件所有者、创建时间、最后访问时间、最后修改时间、文件权限有关的信息。如图1所示:原创 2013-03-14 15:24:31 · 3641 阅读 · 0 评论 -
UNIX--stat、fstat和lstat函数
stat、fstat和lstat函数(UNIX)#include#includeint stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。感觉一般是文件没有打开的时候这样操作。int fstat(int filedes, struct stat *buf);通原创 2013-03-13 16:53:39 · 4079 阅读 · 1 评论 -
UNIX中的Poll函数
poll函数和select函数非常相似,但是函数接口不一样。 int poll(struct pollfd fdarray[], nfds_t nfds, int timeout); int select(int maxfdp1, fd_set *restrict readfds, fd_set *restrict expectfds, struct timeval * res原创 2013-03-12 16:43:46 · 4890 阅读 · 0 评论 -
UNIX中的文件控制--fcntl()
文件控制函数 fcntl -- file controlLIBRARY Standard C Library (libc, -lc)SYNOPSIS #include ; int fcntl(int fd, int cmd, ...);[描述] Fcntl()针对(文件)描述符提供原创 2013-03-13 10:31:18 · 2757 阅读 · 0 评论 -
UNIX--更改/输出当前工作目录
更改当前的工作目录头文件:#include 用法格式:int chdir ( const char *path );chdir用来将当前工作目录改为参数path指定的目录。注意:path指针指向的参数一定是连续的路径且不能带空格,否则将会返回 -1 。getcwd函数——获取当前工作目录 char *getcwd(char *buffer,size_t s原创 2013-03-13 15:51:13 · 4159 阅读 · 0 评论 -
UNIX重定向--dup(2)函数
用同一个open()打开的文件可以有多个描述字与它相连,这种描述字称为重复描述字。重复一个描述字有两种方法:用函数dup()或dup2(),或用函数fcntl()。#include int dup (int old);int dup2 (int old,int new);dup()复制描述字old至一个新描述字,新描述字保证是当前未打开的最小编号可用描述字。dup2()复制描述原创 2013-03-13 09:19:28 · 3824 阅读 · 0 评论 -
UNIX中文件描述符和文件指针
文件描述符在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面来说下,文件描述符是如何工作的。 文件描述符相当于一个逻辑句柄,而open,原创 2013-03-12 21:14:56 · 2900 阅读 · 0 评论 -
UNIX中的Select函数
表头文件#i nclude#i nclude#i nclude定义函数int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);函数说明select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds原创 2013-03-12 02:19:56 · 3389 阅读 · 0 评论 -
UNIX中后台进程与守护进程
后台进程默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。 tianfang > run & [1] 11319 tianfang >进程切换到后台的时候,我们把它称为job。切换到后台时会输出相关job信息,以前原创 2013-03-10 19:29:00 · 6269 阅读 · 0 评论 -
UNIX进程的创建,进程链和进程扇
进程扇的 例子:/* 由一个进程派生多个子进程 */#include #include #include int main(void){ int i; pid_t pid; printf("This is a example\n"); for (i=0 ;i {原创 2013-03-10 18:24:35 · 3183 阅读 · 0 评论 -
UNIX I/O
这一章介绍的知识点包括:1.学习设备无关的I/O的基本知识2.进行read和write的实验3.研究监测多个描述符的方法4.使用正确的错误处理方式5.理解文件描述符的继承read()和write()函数read()从已打开的、与文件描述字filedes相连的文件中读至多nbytes个字节的数据放到buffer所指缓冲区中。它的正常返回值是实际读入的字原创 2013-03-11 10:39:23 · 2168 阅读 · 0 评论 -
UNIX文件mode_t详解
打开文件、新建文件和关闭文件操作打开文件操作使用系统调用函数open(),该函数的作用是建立一个文件描述符,其他的函数可以通过文件描述符对指定文件进行读取与写入的操作。打开文件的一般形式是:open(文件路径, 标志); 函数的返回值是文件描述符,如果打开文件成功返回一个正整数,否则返回-1。标志是用于指定打开文件操作模式的枚举常量,主标志如表13.1所示。表13.原创 2013-03-11 11:07:56 · 14470 阅读 · 0 评论 -
UNIX系统编程(2)
注:本文来自“网易”博主第三章:文件系统 这回我们来说一下UNIX的文件系统。由于一般情况下UNIX机的硬盘会很大,所以一般你可以给它分成几个区,而每个分区又都可以有独立的文件系统。如果你是UNIX系统,你有可能看见 /dev/sd/c0t0d0s0/dev/sd/c0t0d0s1这样的文件。 如果你是linux你有可能看见 /dev/hda0/dev/原创 2013-02-12 21:41:28 · 2546 阅读 · 0 评论 -
Ubuntu下常用命令
常用命令分为四类:文件管理命令文件操作增——touch filename 创建新文件删——rm 文件名查——find 文件名 直接在硬盘里寻找 locate 文件名 文件名的部分匹配 whereis 文件名 从linux文件数据库(/var/lib/slocate/slocate.db)寻找比较——diff原创 2013-03-25 19:39:17 · 2360 阅读 · 0 评论