




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以下是我这几天总结的一些Unix/Linux编程实践教程知识点,希望对大家有用:第一章l Ctrl+D键退出程序,Ctrl+C键产生中断,Ctrl+强制退出l 目录操作命令:1. ls列出目录内容2. cd改变当前目录3. pwd显示当前目录4. mkdir、rmdir新建、删除目录(只能删除空目录)l 文件操作命令:1. 文件命名规则:不能包含“/2. cat,more,less,pg查看文件内容3. cp文件复制4. rm文件删除5. mv重命名或移动文件6. lpr.lp打印文件文件权限:-rwxrwxrwx r:read w:write x:execute,分为三组,第一组为用户,第二组为组用户,第三组为其他用户l bc计算器l ps列出系统中运行的所有进程第二章l 系统调用:open、read、write、creat、lseek、close、perrorl 相关命令:man、who、cp、loginl struct utmp char ut_user32;/User login name char ut_id14; char ut_line32;/device name short ut_type;/当它的值为7时,表示这是一个已经登陆的用户 pid_t ut_pid; struct exit_status short e_termination; short e_exit; ut_exit; time_t ut_time;/time entry was made char ut_host64;/host name;l open:打开一个文件#includeint fd=open(char *name,int how)name:文件名 how: O_RDONLY,O_WRONLY,O_RDWRl read:把数据读取到缓冲区#includessize_t numread=read(int fd,void *buf,size_t qty)fd:文件描述符 buf:用来存放数据的目的缓冲区 qty:要读取的字节数l close:关闭一个文件#includeint result=close(int fd)fd:文件描述符l perror:系统函数,使用这个函数来处理系统报错。l creat:创建/重写一个文件#includeint fd=creat(char *filename,mode_t mode)filename:文件名 mode:访问模式l write:将内存中的数据写入文件#includessize_t result=write(int fd,void *buf,size_t amt)fd:文件描述符 buf:内存数据 amt:要写的字节数l lseek:使指针指向文件中的指定位置#include#includeoff_t oldpos=lseek(int fd,off_t dist,int base)fd:文件描述符 dist:移动的距离 base: SEEK_SET,SEEK_CUR,SEEK_END第三章l 系统调用及函数:opendir、readdir、closedir、seekdir、stat、chmod、chown、utime、renamel 相关命令:lsls -a 列出的内容包含以.开头的文件ls -lu 显示最后访问时间ls -s 显示以块为单位的文件大小ls -t 输出时按时间排序ls -F显示文件类型l stat:得到文件的属性#includeint result=stat(char *fname,struct stat *bufp)fname:文件名 bufp:指向buffer的指针模式字段:typeu(suid)g(sgid)s(sticky)rwxrwxrwxl getpwuid:得到完整的用户列表#includestruct * passwd=getpwuid(uid_t uid);struct passwd char *pw_name;/Username char *pw_passwd;/Password _uid_t pw_uid;/User ID _gid_t pw_gid;/Group ID char *pw_gecos;/Real name char *pw_dir;/Home directory char *pw_shell;/Shell Programl getgrgid:得到组列表#define S_ISUID 0004000 /set user ID on execution#define S_ISGID 0002000/set group ID on execution-rwsr-sr-t用户的x被替换成s,代表set-user-ID被设置,组用户的x被替换s,代表set-group-ID被设置,其他用户的x被替换成t,代表sticky被设置。l chmod:修改文件的许可权限和特殊属性#include#includeint result=chmod(char *path,mode_t mode);path:文件名 mode:新的许可权限和特殊属性l chown:修改文件所有者和组#includeint chown(char *path, uid_t owner,gid_t group)path:文件名 owner:新的文件所有者ID group:新的组IDl utime:修改文件最后修改时间和最后访问时间#include#include#includeint utime(char *path,struct utimbuf *newtimes)path:文件名 newtimes:指向结构变量utimbuf的指针l rename:修改文件名或移动文件的位置#includeint result=rename(char *old,char *new)old:原来的文件名或目录名 new新的文件名或目录名第四章系统调用: mkdir、rmdir、chdir、link、unlink、rename、syslink命令:pwdl mkdir:创建目录#include#includeint result=mkdir(char *pathname,mode_t mode)pathname:新目录名 mode:权限位的掩码l rmdir:删除一个目录。此目录必须为空#includeint result=rmdir(const char *path);path:目录名l 命令:rmunlink:删除一个链接#includeint result=unlink(const char *path);path:需删除的链接名l 命令:lnlink:创建一个文件的新链接#includeint result=link(const char *orig,const char *new);orig:原始链接的名字 new:新建链接的名字l 命令:mvrename:重命名或删除一个链接#includeint result=rename(const char *from,const char *to);from:原始链接的名字 to:新建链接的名字l 命令:cdchdir:改变所调用进程的当前目录#includeint result=chdir(const char *path);path:要到达的目录l 硬链接:将目录链接到树的指针,硬链接同时也是将文件名和文件本身链接起来的指针。l 符号链接:通过名字引用文件,而不是i-节点号。ln -s 生成符号链接系统调用sysmlink用于创建一个符号链接。系统调用readlink用于获取原始文件的名字。lstat用于获取原始文件的信息。第五章l fcntl:控制文件描述符#include#include#includeint result=fcntl(int fd,int cmd);int result=fcntl(int fd,int cmd,long arg);int result=fcntl(int fd, int cmd,struct flock *lockp);fd:需控制的文件描述符 cmd:需进行的操作 arg:操作的参数 lock:锁信息l 设置O_SYNC会关闭内核的缓冲机制,如果没有很充分的理由,最好不要关闭缓冲。l 启动自动添加模式,然后调用write:#includeint s;s=fcntl(fd,F_GETFL);s|=O_APPEND;result=fcntl(fd,F_SETFL,s);if(result=-1) perror(setting APPEND);else write(fd,&rec,1);当O_APPEND被置位,内核将lseek和write组合成一个原子操作,被连接成一个不可分割的单元。l fd=open(WTMP_FILE,O_WRONLY|O_APPEND|O_SYNC);以写方式打开文件wtmp并将O_APPEND和O_SYNC位开启。open支持的其他标志位:O_CREAT 如果不存在,创建该文件。可查看O_EXCL.O_TRUNC 如果文件存在,将文件长度置为0.O_EXCL O_EXCL标志位防止两个进程创建同样的文件。如果文件存在且O_EXCL被置位,则返回-1.程序可调用stat查看文件是否存在。stty:显示驱动程序设置icrnl:输入时将回车转换为换行onlcr:输出时在新的一行中加入回车。l tcgetattr:读取tty驱动程序的属性#include#includeint result=tcgetattr(int fd,struct termios *info);fd:与终端相联的文件描述符 info:指向终端结构的指针l tcsetattr:设置tty驱动程序的属性#include#includeint result=tcsetattr(int fd,int when,struct termos *info);fd:与终端相联的文件描述符 when:改变设置的时间 info:指向终端结构的指针when:参数TCSANOW:立即更新驱动程序设置TCSADRAIN:等待直到驱动程序队列中的所有输出都被传送到终端,然后进行驱动程序的更新。TCSAFLUSH:等待直到驱动程序队列中的所有输出都被传送出去,然后释放所有队列中的输入数据,并进行一定的变化。操作代码测试位if(flagset&MASK).置位flagset|=MASK清除位flagset&=MASKl ioctl:控制一个设备#includeint result=ioctl(int fd,int operation, arg.);fd:与设备相联的文件描述符 operation:需进行的操作 arg.操作所需参数第六章l 系统调用:fcntl、signall stty -icanon 关闭驱动程序中的规范模式处理。l 规范模式:有缓冲和编辑功能。l 非规范模式:关闭缓冲和编辑功能。l raw模式:每个处理步骤都被一个独立的位控制。中断信号通常是编码2.SIGINT中断信号 SIGQUIT退出信号 SIGSEGV非法段存取信号接受默认处理:signal(SIGINT,SIG_DFL);忽略信号:signal(SIGINT,SIG_IGN);调用一个函数:安装信号处理函数:signal(signum,functionname);l signal:简单的信号处理#includeresult=signal(int signum,void (*action)(int);signum:需响应的信号 action:如何响应action可以是函数名或以下两个特殊值之一。第八章l 系统调用:fork、exec、wait、exitl 相关命令:sh、psl execvp:在指定路径中查找并执行一个文件#includeresult=execvp(const char *file,const char * argv)file:要执行的文件名 argv:字符串数组l fork:创建进程#includepid_t result=fork(void)l wait:等待进程结束#include#includepid_t result=wait(int *statusptr)statusptr:子进程的运行结果l _e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以活动文明城市活动方案
- 浙江省嘉兴市南湖区2023-2024学年五年级下学期数学期末检测卷(含答案)
- 泉州市2025届高三毕业班考前模拟练习卷(一)试题解析
- 企业云年会活动方案
- 企业元旦活动方案
- 企业公司辩论赛活动方案
- 企业剪彩活动方案
- 北京市西城区五年级下学期数学期末试卷(含答案)
- 企业围棋活动方案
- 企业对外沟通活动方案
- 脑疝的判断和急救课件
- 国家开放大学2022秋法理学形考1-4参考答案
- 江西检测收费标准
- BVI公司法全文(英文版)
- 移动基站物业协调方案
- 岩土锚杆技术规程课件
- 风寒感冒及风热感冒诊断及合理用药课件
- 第五版PFMEA编制作业指导书
- VDA6.3过程审核检查表(中英文版)
- DBJ∕T 13-261-2017 福建省二次供水不锈钢水池(箱)应用技术规程
- 二手车评估作业表简单实际样本
评论
0/150
提交评论