Linux的那些事儿(3)----Linux环境下编程之UNIX基础知识
来源:互联网 发布:在淘宝上买百度云资源 编辑:程序博客网 时间:2024/05/17 20:28
Date:2009.5.7
Content:UNIX环境下高级编程 Chapter1:UNIX System Overview
1、所用书籍:《UNIX环境下高级编程》
(Advanced Programming in the UNIX® Environment: Second Edition)
2、实例代码下载地址:http://www.apuebook.com/src.tar.gz
虽然提供了代码,但是强力推荐自己在vim或者vi中敲入代码。
3、预备知识
(1) C/C++语言知识:在编程之前,你至少知道什么是函数、变量、结构体、指针、for/while/do..while等等。
(2) Linux知识:你至少会如何在vim/vi下编辑C/C++代码,然后知道用cc命令来编译你的C/C++代码。
(3) 确定你的UNIX版本:我选择的是Fedora Core10,内核版本为2.6,书中提供的代码是在2.4环境下运行的。所以Linux基础差的人,可以直接装RH9.0版本。
4、学习笔记
一、UNIX体系
1、系统调用System calls是内核的接口
2、shell是一种为其他应用程序提供接口的特殊的应用程序
3、Linux是GNU操作系统的内核,所以有人称之为GUN/Linux,更简便的称谓是Linux(这就是为什么GUN/Linux又叫Linux的原因)
二、登录
1、每当你登陆系统后,系统会找到口令文件,一般在/etc/passwd中,口令文件由下面七个部分组成:
sar:x:205:105:Stephen Rago:/home/sar:/bin/ksh
登录名:sar
密钥:x
用户id:205
用户组id:105
注释:Stephen Rago
父目录:/home/sar
shell 程序:/bin/ksh
三、文件和目录
1、文件名不能出现的两个字符:斜杠'/'和空字符:null
2、实例1.3. List all the files in a directory
************************************************************
利用函数opendir, readdir, 以及 closedir操作目录
opendir返回DIR结构体,然后将返回值传递给readdir
readdir读取每个DIR的实例,一般用循环操作
closedir用户关闭
************************************************************
四、输入输出
1、文件描述符:一般是一个小的非负整型数字
2、标准输入、输出、错误
3、实例1.4:非缓冲输入输出
************************************************************
常量:STDIN_FILENO、 STDOUT_FILENO 在头文件<unistd.h>定义
如果执行./a.out <file1>file2将会把file1的内容输入到file2中
************************************************************
4、实例1.5:拷贝标准的输入到标准的输出
************************************************************
fget()函数读一完整的行,read函数读指定字节数
函数getc一次读一个字符,然后函数putc将此字符写到标准输出,读到输入的最后一个字节时
,getc返回常量EOF,该常量在stdio.h中定义
************************************************************
五、程序和进程
1、实例1.6 :打印当前进程ID
************************************************************
利用函数getpid()即可获得当前进程ID
************************************************************
2、实例1.7:从标准输入读命令并执行
********************************************************************
fget从标准输入一次读一行,当键入文件结束字符作为行的第一个字符是,fgets返回null
fork创建一个新进程,新进程是调用进程的复制品,我们称调用进程为父进程,新创建的为子进程
execlp用以执行从标准输入读入的命令
子进程调用execlp执行新程序文件,而父进程希望等待子进程终止,这一要求有调用waitpid实现
********************************************************************
六、错误处理
1、C语言提供两种方式用户打印错误信息
#include <string.h>char *strerror(int errnum);
Returns: pointer to message string
#include <stdio.h>void perror(const char *msg);
- Linux的那些事儿(3)----Linux环境下编程之UNIX基础知识
- Linux的那些事儿(4)----Linux环境下编程之Unix标准化及实现
- Linux的那些事儿(5)----Linux环境下编程之文件I/O
- Unix/Linux环境C编程入门教程(27) 内存那些事儿
- Unix/Linux环境C编程入门教程(32) 环境变量那些事儿
- Unix/Linux环境C编程入门教程(23) 字符数字那些事儿
- Unix/Linux环境C编程入门教程(25) C/C++字符测试那些事儿
- Unix/Linux环境C编程入门教程(26) 字符数字那些事儿
- Unix/Linux环境C编程入门教程(28) 日期时间那些事儿
- Unix/Linux环境C编程入门教程(29) 内存操作那些事儿
- Unix/Linux环境C编程入门教程(30) 字符串操作那些事儿
- Unix/Linux环境下的Socket编程
- Unix/Linux环境下的Socket编程
- Unix/Linux环境下的Socket编程
- Linux的那些事儿(6)----Linux编程之文件和目录
- 细说Linux下的虚拟主机那些事儿
- Linux的那些事儿(13)----Shell编程
- Linux的那些事儿(1)----Linux和UNIX以及和Windows的区别
- dos的强大功能---自动生成文件列表
- 如何在项目中使用FckEditor在线编辑器
- Ubuntu 9.04下加入iBus输入法pinyin
- Editor
- 谈谈防 SQL 注入式攻击策略
- Linux的那些事儿(3)----Linux环境下编程之UNIX基础知识
- 水晶报表发布到服务器上报错。
- vb.net中自定义线帽
- 正则收集中
- 搭上Android,台湾手机产业后来居上的Turbo引擎
- IT人不要一辈子靠技术生存
- XX项目管理系统开发总结
- IT人 不要一辈子靠技术生存(转)
- 两个页面textbox传值