LINUX开发学习日记(第一部)(UNIX环境高级编程)

原创 2002年06月28日 16:18:00

        /*申明:本学习日记是参照《UNIX环境高级编程》而写 *。


由于第一章和第二章主要讲解UNIX(LINUX)系统的一些基础知识和一些技术标准之间的差异,所以在这里我就不再浪费时间和精力了。如果有兴趣可以自己看看。

        本章主要讲解LINUX系统中的无缓冲文件(unbuffered)I/O操作的相关函数和用法。最后为了大家能够灵活的掌握这些函数的用法,并给出了少量的上机练习题。

        首先,我们从整体了解一下文件操作的大致流程:打开(open)或创建(create)文件-->读(read)、写(write)、重新(lseek)定位文件-->关闭文件(close)。那么在无缓冲文件(unbuffered)I/O操作中,我们用什么来标志我们打开的文件------文件描述符(file descriptor)。

       1。文件描述符(file descriptor)

            文件描述符是系统内核分配给打开的文件的最小非负整数。当我们打开(open)一个现存文件或创建(create)一个新文件时,内核向进程返回一个文件描述符。然后将其作为参数传送给r e a d、w r i t e、lseek等这些需要对该文件进行操作的函数。

            文件描述符的范围在<unistd.h>头文件中通过OPEN_MAX来限制,新的LINUX系统中,其值一般为63,即一个进程最多能同时打开64个文件。同时在该文件中还定义了STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO三个常数,其值分别为0、1、2;它们分别代表标准输入设备(一般为键盘)、标准输出设备(一般为显示器)和标准错误输出设备(一般也为显示器)。

       2。文件操作的函数

            1>.打开文件函数


       #include <sys/types.h>

       #include <sys/stat.h>

       #include <fcntl.h>

        int open(const char pathname, int oflag ,....../* mode_t mode */)

                                      返回:若成功为int型的文件描述符,若出错为- 1


  • pathname  :你要打开文件所在的目录(包括文件名)。
  • oflag         :指定打开文件的方式的参数,可以通过单个以下的值或它们的“或”组合。最主要有三个:只读(O_RDONLY)、只写(O_WRONLY)、读写(O_RDWR);另外还有一些其他的控制参数如O_APPEND、O_CREAT等等,这些参数的具体含义和用法可以在LINUX中通过man open来获得。它们都是定义在头文件<fcntl.h>中。
  • mode        :是一个可选的参数,只有当oflag中有O_CREAT时,这个参数才会出现在open函数中,它主要用来指定创建一个新文件时的权限。

 

Shell高级编程学习笔记(基础篇)

目录 1.shell脚本的执行方法   2.shell的变量类型   3.shell特殊变量 4.变量子串的常用操作   5.批量修改文件名实践    6.变量替换 7.在shell中计算字符串...
  • Erica_1230
  • Erica_1230
  • 2017年05月07日 15:14
  • 559

《Power Shell高级编程》学习:第1章 PowerShell简介

Windows PowerShell设计原则 Windows PowerShell快速入门 直接双击 Windows PowerShell 快捷方式或者在“运行”对话框中输入 “PowerShell”...
  • yenange
  • yenange
  • 2016年05月26日 15:21
  • 2219

《UNIX环境高级编程》学习经验总结

《UNIX环境高级编程》学习经验总结
  • BlitzSkies
  • BlitzSkies
  • 2015年02月13日 14:37
  • 2618

《考拉小巫的英语学习日记》读书笔记

对于未来 我只梦想最好的情况 并订下最踏实的计划 而绝不花时间在无谓的担心上 因为我知道 只要把我对自己的承诺付诸实践 我的未来将不会只是一个梦  By 考拉小巫...
  • z317026263
  • z317026263
  • 2016年11月10日 08:21
  • 1010

《UNIX环境高级编程》笔记:前言

为什么要学UNIX编程的理由很多很多,只说我身上的吧。和Windows不一样,大部分UNIX类操作系统是免费的,而且被专门设计来做服务器。当今大大小小各种公司,绝大部分服务器上都是用的UNIX类操作系...
  • fenghou1st
  • fenghou1st
  • 2015年01月27日 23:43
  • 451

《Unix环境高级编程》学习笔记:从点到面总结

以前在课堂上学习过《Unix初级教程(第四版)》,对于Unix有了一点了解。由于以后使用的需要,要对它进行比较深入的学习,为此需要阅读不少的书籍,这本《Unix环境高级编程》便在此列。希望能通过这本书...
  • benpaobagzb
  • benpaobagzb
  • 2016年03月03日 17:33
  • 488

《MySQL高效编程》学习笔记--基础篇

启动MySQL监视器创建数据库–启动–mysql -u yonghuming -p mysql -u yonghuming -p密码 无密码可省略 -p–设定root密码–mysqladmin ...
  • qwerty_bibabo
  • qwerty_bibabo
  • 2017年02月07日 19:50
  • 1249

android_c++ 高级编程NDK学习笔记一

第一章 深入了解android NDK 2.1 Android 提供的组件:     ARM,x86和MIPS交驻编译器     构建系统     Java原生接口头文件     C库  ...
  • retacn_yue
  • retacn_yue
  • 2014年06月13日 12:47
  • 2627

CSS学习笔记一

CSS全称:层叠样式表(Cascading Style Sheets),用来定义网页的显示效果,可以解决html代码对样式定义重叠的重复,提高了后期样式代码的可维护性,并增强了网页的显示效果。 总结...
  • u013497151
  • u013497151
  • 2014年11月21日 13:18
  • 1288

使用Java语言编写一款日记软件

*前言:用此款软件记录生活的点滴项目分析一、 实验说明 - 环境介绍 本实验在Window平台下,使用Eclipse环境 - 项目介绍 使用java语言实现的一款日记软件。可以实现用户的...
  • baidu_22522021
  • baidu_22522021
  • 2016年04月09日 16:56
  • 2435
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LINUX开发学习日记(第一部)(UNIX环境高级编程)
举报原因:
原因补充:

(最多只允许输入30个字)