1.linux下各种头文件存放处:
/usr/include,/usr/include/cpp
2.void* 表示通用指针
3.搜索某个文件(已知文件名):
locate filename
4.添加用户自己的变量或者配置自己的alias
修改 ~/.bashrc
修改完之后可以执行source ~/.bashrc,使更动生效。
5.vim
保存退出:ZZ :qw
不保存退出:ZQ :q
6.stat
查看某文件(目录)的状态,包括文件内容访问(atime)、修改(mtime)时间,文件i节点的修改时间(ctime),UID、GID,大小,inode等。
7.用于进程间通信:
FIFO:也叫命名管道(named pipe)
socket(套接字):用于进程间网络通信
8.当执行文件时,将进程的有效用户ID设置为文件所有者的用户ID(st_uid)
如passwd指令。
9.原子操作:
在外界看来:要么全做,要么全不做
10.
一个目录的写权限位和执行权限位决定了在该目录中能否创建新文件以及删除文件,
但它们并不表示写目录本身,什么叫写目录?
11正则表达式:
^word:选出以word开头的行。
word$:选出以word结尾的行。
12.grep反向选择:
grep -v
13.SUS(Single UNIX Specification)是POSIX的一个超集.
14.uname:打印与当前主机和OS相关的信息。包括系统版本,
15.vim跳转到第n行:
nG
16.从main()函数中退出后,系统还可能调用终止处理程序,终止处理登记程序为atexit().《UNIX环境高级编程2》7.3
17.main()函数是如何被启动的?
在进入main()函数之前,内核调用exec进程,exec进程将命令行参数传递给程序(main()),然后启动main().
18.C程序的存储空间的布局:
19.查看正在运行进程的状态,类似于windows的任务管理器:
top
20.fork函数:
21.僵尸进程():
一个已经终止,但其父进程尚未对其进行善后处理的进程。
善后处理是指:获取终止子进程的相关信息,释放它仍占用的资源。
22.解释器文件:
如BASH shell script文件。
开头以
#! pathname [optinal argument]
pathname指定解释器,解释器用于解释该“解释器文件”。
如
#! /bin/bash
22.父进程wait,waitpid(),等待子进程结束返回,获取子进程的相关信息,释放它占用的资源。
23.setjmp(),longjmp():
24.signal函数:
25.中断字符:
26.实现父子进程之间同步:
27.新创建线程和进程时,并不能保证新、旧线程(进程)哪个先运行。
28.读写锁:也叫共享-独占锁,多读一写。
29.互斥锁:
只有在获得了某变量互斥锁之后的线程才能对该(被互斥锁保护的)变量进行修改,没有获得互斥锁的线程无权修改被互斥锁保护的变量