《UNIX环境高级编程》(第三版第一章)
来源:互联网 发布:mac redis可视化工具 编辑:程序博客网 时间:2024/05/18 00:30
1.
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
2.
//当文件是一个符号链接时,stat返回的是该符号链接引用的文件的信息,而lstat返回的是该符号链接的有关信息。int stat(const char *restrict pathname,struct stat *restrict buf);int lstat(const char *restrict pathname,struct stat *restrict buf);int fstat(int fd,struct stat *buf);
3.
$touch f1$ln f1 f2硬链接,相同inode。$ln -s f1 f3软连接,不同inode。
4.
在最高层次的根目录中,..(父目录)和.(当前目录)相同。$ls -ldi /. /..-l以长格式的形式查看当前目录下所有可见文件的详细信息。-d仅打印目录信息,而不是打印目录中所有文件的信息。-i打印文件或目录的i节点编号。
5.
#include <dirent.h>//directory entries(entry)目录项。DIR *opendir(const char *pathname);//一定要是目录。struct dirent *readdir(DIR *dp);int closedir(DIR *dp);
6.
$rmdir 目录目录非空删不了。$rm -rf 目录-r向下递归,不管有多少级目录,一并删除。-f直接强行删除,不做任何提示。
7.
int printf(const char *format,...);int fprintf(FILE *stream,const char *format,...);int sprintf(char *str,const char *format,...);int snprintf(char *str,size_t size,const char *format,...);int vprintf(const char *format,va_list ap);int vfprintf(FILE *stream,const char *format,va_list ap);int vsprintf(char *str,const char *format,va_list ap);int vsnprintf(char *str,size_t size,const char *format,va_list ap);//v可变,n大小。
8.
__attribute__((noreturn))//若你需要用一个没有返回值的函数A提前终止一个有返回值的函数B。这样可以避免警告:提示B没有返回值。$cat test1.cextern void exitnow();int foo(int n){if(n>0){exitnow();/* control never reaches this point */} elsereturn 0;}$gcc -c -Wall test1.ctest1.c: In function `foo':test1.c:8: warning: this function may return with or without a value$cat test2.cextern void exitnow() __attribute__((noreturn));int foo(int n){if(n>0)exitnow();elsereturn 0;}$gcc -c -Wall test2.cno warnings!
9.
int chdir(const char *path);//改变工作目录。
10.
重定向 > <
11.
#define STDIN_FILENO 0#define STDOUT_FILENO 1#define STDERR_FILENO 2
12.
pid_t getpid();//标准保证它能保存在一个长整型中。(long)getpid()
13.
pid_t fork(void);//调用一次,返回两次pid_t waitpid(pid_t pid,int *statloc,int options);int execlp(const char *filename,const char *arg0,.../*(char *)0*/);//若出错,返回-1;若成功,不返回。
14.
thread线程:一个进程内的所有进程共享同一地址空间、文件描述符、栈以及与进程相关的属性。因为它们能访问同一存储区,所以各线程在访问共享数据时需要采取同步措施以避免不一致性(信号量)。
15.
/*errno可以是一个包含出错编号的整数,也可以是一个返回出错编号指针的函数。在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程。*/extern int errno;extern int *__errno_location(void);#define errno (*__errno_location())/*解释:errno实际上并不是我们通常认为的是个整型数值,而是通过整型指针来获取的。这个整型就是线程安全的。另外,宏之所以这样实现,是因为标准库规定了必须能够通过&errno方式取得保存错误代码的变量的地址,因此__errno_location()函数的返回值是指针,并把宏定义为解引用函数返回的地址*__errno_location()。如果__errno_location直接返回int类型,此时就无法取得保存错误代码的变量的地址。*///对于errno应当注意两条规则://a.如果没有出错,其值不会被例程清除。因此,仅当函数的返回值指明出错时,才检验其值。//b.任何函数都不会将errno值设置为0,而且在<errno.h>中定义的所有常量都不为0。
16.
char *strerror(int errnum);void perror(const char *msg);
17.
uid_t getuid(void);gid_t getgid(void);
18.
中断键:Delete键或Ctrl+C(SIGINT信号)
退出键:Ctrl+\(SIGQUIT信号)
19.
void (*signal(int signo,void (*func)(int)))(int);//r若成功,返回以前的信号处理配置;若出错,返回SIG_ERR。#define SIG_ERR (void (*)()) -1#define SIG_DFL (void (*)()) 0//default#define SIG_IGN (void (*)()) 1//忽略信号
20.
日历时间:自1970年1月1日00:00:00以来所经过的秒数累计值(time_t)。
进程时间:以时钟的滴答计算(clock_t)。每秒时钟滴答数:sysconf(_SC_CLK_TCK);
时钟时间
用户CPU时间
系统CPU时间
21.
/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。
1 0
- 《UNIX环境高级编程》(第三版第一章)
- apue《UNIX环境高级编程第三版》第一章答案详解
- Unix环境高级编程第三版第一章练习代码
- Unix环境高级编程 第三版 勘误表(中文翻译)
- Unix环境高级编程学习chapter1-Unix环境高级编程运行 第三版 环境搭建
- 《UNIX环境高级编程》知识点整理(第一章)
- Unix环境高级编程第一章摘记
- Unix环境高级编程 第一章 学习笔记
- Unix环境高级编程 第一章笔记
- UNIX环境高级编程--第一章总结
- UNIX环境高级编程第一章总结
- <<UNIX环境高级编程>>之第一章理解
- unix高级环境编程.第一章习题答案
- unix环境高级编程第三版环境配置
- 在Linux环境下面搭建 UNIX 环境高级编程(第三版) 的代码编译环境
- UNIX环境高级编程(第三版)学习笔记(一、UNIX基础知识)
- UNIX环境高级编程(第三版)学习笔记(二、UNIX标准及实现)
- Unix环境高级编程——第一章-UNIX基础知识
- 聊一聊服务器的那些事儿
- android 获取屏幕高度和宽度 的方法
- 计算机网络之HTTP代理服务器
- Android官方MVP架构解读
- 排序算法
- 《UNIX环境高级编程》(第三版第一章)
- 1.1typescript class
- 继续畅通工程
- mysql分区(二)
- C++第六次实验(数组操作)
- 【Jenkins】Pipeline使用进阶
- linux Cent-os vim 背景色设置 vimrc配置
- Guava:谷歌开发的集合库
- php类型转换