
unix高级编程
skywalkerVVV
牛逼的背后都是傻逼的坚持
展开
-
今天就开始 unix高级编程 的学习
<br />好好学习,做好笔记,多多动手。我的理想是:“让我的家人过得更好”原创 2011-02-24 14:29:00 · 472 阅读 · 0 评论 -
apue第五章
<br /><br />1、标准io<br /> 标准io与不带缓冲的io的区别。<br />标准io在内存有一个缓冲区,io函数将数据写入到这个缓冲区,然后在使用系统调用read或write来写入内核的缓冲区中。所以标准io有两次缓冲。<br />二不带缓冲的io只有一次缓冲。可以使用fflush将内存的缓冲写入到内核中的缓冲中,可以使用fsyn将内核中的缓冲数据写入磁盘中。<br />2、三种标准io的缓冲机制<br /> 1>全缓冲,当内存中的缓冲区满了才会进行实际io,与文件关联的io一般都是全原创 2011-03-09 17:31:00 · 549 阅读 · 0 评论 -
apue第四章(一)
<br /><br />我的目标是:“让家人生活得更好”<br />1、文件的属性是存放在一个结构中的。<br /> 这个结构式 struct stat 在文件 bits/stat.h中<br />下面黑色部分是主要的结构:<br />structstat<br /> {<br /> __dev_t st_dev; /* Device. */<br />#if__WORDSIZE == 32<br /> unsigned short int __pad1;<br /原创 2011-03-07 16:06:00 · 690 阅读 · 0 评论 -
apue第四章(三)
<br />我的目标是:“让我的家人过得更好”<br /> <br /><br />9、读取目录<br /> <br />//myls.c 递归读取目录下的所有文件 并统计结果<br />#include<stdio.h><br />#include<unistd.h><br />#include<sys/stat.h><br />#include<fcntl.h><br />#include<dirent.h><br />#include<stdlib.h><br />#include<string.h>原创 2011-03-08 16:51:00 · 620 阅读 · 0 评论 -
apue第一章 (3)
<br />我的目标是:“让家人过得更好”<br />13、信号机制<br />信号机制是通知进程发生了某种状态的一种机制。<br />信号的来源有两种:<br />一种是来之键盘,例如 ctrl+c是中端键,ctrl+/是退出;另一种是使用kill系统调用,kill可以将信号发送给指定的进程,但是发送者必须是进城的拥有者。<br /> 处理信号有三种方法:<br /> 一种是忽略,第二种是采用系统默认处理方法,一般为退出进程,第三种是自定义采取的动作,可以使用signal函数注册一个处理函数。<br />原创 2011-02-28 11:55:00 · 718 阅读 · 0 评论 -
apue第三章(2)
我的理想是:“让我的家人生活得更好”6、几个io系统调用都在 fcntl.h中fcntl.h sys/types.h open(char* path, oflag, …/*mode_t mode*/)第一个参数是文件的名字最长不要超过MAX_NAME第二个参数是打开文件参数第三个是创建文件时候提供的umask第二个参数一般使用:O_RDONLY 只读的方式打开O_WRONLY 只写的方式打开O_RDWR 读写方式打开O_CREAT 如果原创 2011-03-02 14:26:00 · 540 阅读 · 0 评论 -
apue第三章(1)
我的理想是:“让我的家人生活得更好”1、一般的unix系统提供五个系统调用就能够实现io功能了: openread write lseek close。这些函数一般被叫做不带缓冲的io (unbuffered io)2、文件描述符 Unix系统中每一个打开的文件都有一个非零整数与其对应叫做文件描述符。一般标准输入与0对应,标准输出与1对应,标准错误输出与2对应。在unix中为了便于移植,使用STDIN_FILENOSTDOUT_FILENO,STDERR_FILENO (fcntl.h原创 2011-03-01 12:39:00 · 759 阅读 · 0 评论 -
apue第二章
<br />我的目标是:“让我的家人生活得跟好”<br />1、Posix标准,posix = potable operating System interface for computer environment <br />由IEEE制订。<br />2、系统的限制<br /> 不同的平台系统都有限制,比如字长的区别,32位与64位。有点限制可以在头文件中定义,有点限制则和具体的实现有关系。比如最大文件长度,能打开的最大进程数目等。<br /> ANSI c的限制在limits.h 中,同样po原创 2011-02-28 15:32:00 · 737 阅读 · 0 评论 -
apue第一章 (2)
<br />我的理想是:“让我的家人过的更好”<br />10、ansi c<br />Ansi = American national standard institute 美国国家标准协会<br />Ansi c 是ansi对c语言进行的标准化。<br />Ansi c中大多函数都是使用的 void * 为指针参数,在使用的时候不用强制转换<br />例如 malloc 的原型为 void* malloc(size_t)<br />当使用<br />float * ptr;<br />ptr = ma原创 2011-02-25 11:31:00 · 750 阅读 · 0 评论 -
apue第一章 (1)
<br />开始学习第一章了,不要再好高骛远了,专注一点,记住我的理想是:“让家人生活的更好”<br />第一章第一部分笔记:<br />1、系统调用就是,计算机操作系统给应用程序提供的服务,比如文件操作,执行新程序,分配内存等。<br />2、apue的目的即是介绍这些服务。<br />3、用户登录:<br />用户的信息存放在/etc/passwd文件中<br />white@white-desktop:/etc$ cat passwd<br />root:x:0:0:root:/r原创 2011-02-24 17:14:00 · 631 阅读 · 0 评论 -
apue第四章(二)
<br /><br />我的目标是:让我的家人生活得更好<br /> <br />7、unix的文件系统<br /> unix的文件系统结构:主要包括有i节点,数据块,目录块。是对数据块和目录块的编号。一个i节点可以指向多个数据块或者目录快。一个文件或者一个目录对应一个i节点(也就是对应一个编号)。一个i节点可以对应一个多个文件。在struct stat有st_link与之对应。这个在unix中叫做硬链接数。<br />例如下面testumask0,testumask1就是硬链接数为2,删除其中一个原创 2011-03-08 11:52:00 · 681 阅读 · 0 评论