ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:56KB ,
资源ID:7038051      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7038051.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(linux高级编程(一、目录操作).doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

linux高级编程(一、目录操作).doc

1、///////////////////////// 第一天 系统调用 ---目录/////////////////////////////////////////////////////////////////////// 一、设备及文件操作 linux操作系统把所有的设备都当作文件处理。linux文件类型常见的有普通文件、目录文件、设备文件、链接文件、管道文件。 ls -l crw-rw-rw- 1 root root 1, 5 07-05 08:54 zero 文件类型: - 普通文件 d

2、目录 l 链接 c 字符设备 b 块设备 p 先入先出设备(管道) u 非缓冲设备 **其中,链接分为硬链接和符号链接。对文件硬链接后,只增加了文件的引用计数,并没有物理上增加文件。 符号链接是一个物理上真实存在的文件,该文件的内容是指向被链接文件的指针。 权限 rwx chmod 777 属主属组其它 文件引用计数 文件属主 文件属组 文件大小 文件修改日期

3、 文件名 (一).目录操作 在linux中,目录是一种特殊文件,称为目录文件。 1.基本概念 工作目录:即进入系统后所在的当前目录,可以随时改变,用“.”表示,其父目录为“..” 用户目录:创建用户时创建的目录。每个用户都有自已的主目录。可以通过~引用自已的主目录。 路径:从树型目录的某个目录层次到某个文件的一条通路。各目录层次中间用/分隔 路径分为相对路径和绝对路径。 绝对路径:从根目录/开始,只有一条,是固定不变的。 相对路径:随工作目录的变化

4、而不断变化。 2.目录操作的基本函数 头文件 #include 对外提供的各种数据类型 如 size_t #include 对外提供的各种结构类型 如 time_t 1)创建目录 int mkdir(const char *path,mode_t mode); path: 要创建的目录文件名称,可为绝对路径或相对路径 mode: 新创建目录的权限。 S_IRUSR 属主读权限 4 S_IWUSR

5、 属主写权限 2 S_IXUSR 属主执行权限 1 S_IRGRP 属组读权限 S_IUGRP 属组写权限 S_IXGRP 属组执行权限 S_IROTH 其它用户读权限 S_IUOTH 其它用户写权限 S_IXOTH 其它用户执行权限 使用时,可用

6、或运算组合使用,如 S_IRUSR | SIWUSR 写可以使用数字,如 666 返回值:0 成功 -1失败。 说明:创建目录成功后,系统将在新目录下自动创建两个子目录“.”和“..” 2)删除目录 int rmdir(const char *path); path:要删除的目录文件名称 返回值:0成功,-1失败 说明:只能用于删除空目录。 * 5)读取目录 #include //目录文件函数头 打开目录

7、 DIR *opendir(const char *pathname) 读取目录,返回一个指针,返回的结构保存目录中下一个目录项的相关数据。 struct dirent *readdir(DIR *dp) 将目录的读指针重新返回到第一个目录项 void rewinddir(DIR *dp) 关闭已打开的目录项 int colsedir(DIR *dp) 4)获取工作目录 char *getcwd(char *buf,size_t size); buf:保存到工作目录名,称为缓存 size

8、缓存大小 返回值:调用成功,返回当前工作目录,否则返回NULL pathname:目录名称 dp DIR结构指针,是目录文件结构定义 struct dirent{ ino_t d_ino; //目录文件的inode节点编号 off_t d_off; //目录文件开始至目录进入点的位移 unsigned short d_reclen; //d_name的长度,不包含NULL unsigned char d_type; //d_nam

9、e所指的文件类型 char d_name[256];//文件名或目录 }; * 6)获取文件或目录状态 #include int stat(const char *file,struct stat *buf)//未打开的文件 int fstat(int fd,struct stat* buf) //已打开的文件 file:文件名 fd:已打开的文件描述符 buf:指向stat结构的指针,用于保存获取的文件状态数据,结构如下: st

10、ruct stat{ unsigned long st_dev; //文件所在设备的标识 unsigned long st_ino; //文件结点号 unsigned short st_mode; //文件保护模式 unsigned short st_nlink; //硬链接数 unsigned short st_uid; //文件用户标识 unsigned short st_gid; //文件用户组标识

11、 unsigned long st_rdev; //文件特殊设备标识 unsigned long st_size; //文件总大小,字节为单位 unsigned long st_blksize; //文件系统的块大小 unsigned long st_blocks; //文件分配给文件的块数量,512字节为单元 unsigned long st_atime; //文件最后访问时间 unsigned long st_atime_nse

12、c; unsigned long st_mtime; //文件最后修改时间 unsigned long st_mtime_nsec; unsigned long st_ctime; //文件最后状态改变时间 unsigned long st_ctime_nsec; }; 例:获取文件大小 struct stat mystat; fstat(fd,&mystat)

13、 int size=mystat.st_size;//文件的大小 10)文件类型获取 S_ISREG() 判断是否为普通文件 S_ISDIR() 判断是否为目录文件 S_ISCHR() 判断是否为字符特殊文件 S_ISBLK() 判断是否为块特殊文件 S_ISFIFO() 判断是否为管道或FIFO文件 S_ISLNK() 判断是否为符号链接 S_ISSOCK() 判断是否为套接字 #include #include

14、> #include #include 例: main(){ stat(pDirent->d_name,&fbuf); //读取目录项的信息 if(S_ISDIR(fbuf.st_mode) && memcmp(pDirent->d_name,".",1)!= 0 } #include #include #include #in

15、clude main() { struct statfs buf; struct stat fbuf; memset(&fbuf,0x00,sizeof(fbuf)); stat("/etc/passwd",&fbuf); printf("The size of file /etc/passwd is %ld bytes.\n", fbuf.st_size); printf("The type of file /etc/passwd is ");

16、 if(S_ISREG(fbuf.st_mode)) printf("regular file.\n"); else if(S_ISDIR(fbuf.st_mode)) printf("directory file.\n"); else if(S_ISCHR(fbuf.st_mode)) printf("character special file.\n"); else if(S_ISBLK(fbuf.st_mode)) printf("block special file.\n"); else if(S_ISFIFO(fbuf.st_mod

17、e)) printf("fifo file.\n"); else printf("other file.\n"); //write(STDERR_FILENO,szOutBuffer,strlen(szOutBuffer)); } 3.函数应用 #include #include #include #include void SearchDir(char *szDir) { struct dirent *pDirent;

18、 struct stat fbuf; //目录结构变量 char szOut[256]; DIR *dp = opendir(szDir); //打开目录 if (!dp) { return; } chdir(szDir); //改变工作目录到szDir while (pDirent=readdir(dp))//循环读取目录szDir目录中的目录项 { memset(&fbuf,0x00,sizeof(fbuf)); st

19、at(pDirent->d_name,&fbuf); //读取目录项的信息 if(S_ISDIR(fbuf.st_mode) && memcmp(pDirent->d_name,".",1)!= 0 && memcmp(pDirent->d_name,"..",2)!= 0) //判断是否是目录,并且不是.和.. { memset(szOut,0x00,sizeof(szOut)); sprintf(szOut,"%s/%-s",szDir,pDirent->d_name); //读取

20、目录名 write(STDOUT_FILENO,szOut,strlen(szOut)); write(STDOUT_FILENO,"\n",1); SearchDir(szOut); //递归调用当前函数,遍历子目录 } } chdir(".."); //为关闭目录需要修改工作目录为非当前目录 closedir(dp);

21、 //关闭目录 return; } int main(int argc,char *argv[]) { if (argc < 2) exit(1); SearchDir(argv[1]); return 0; } //---------------下午-------------------------------- (二).错误处理 1)读取错误号及错误信息 strerror(int errno)

22、 处理 int err= bind(1,NULL,2); if (err==-1){ printf("%s\n",strerror(errno));//用英文件打印原提示信息 if (errno==EPROTONOSUPPORT) printf("汉字\n"); //获取错误号后,打印相应的提示 } 2)检查条件是否成立 #include void assert( int expression );

23、assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。   #include #include   int main( void )   {    FILE *fp;    fp = fopen( "test.txt", "w" );//以可写方式打开一个文件,如果不存在就创建一个同名文件    assert( fp ); //所以这里不会出错    fclose( fp );   

24、fp = fopen("noexitfile.txt", "r" );//以只读方式打开一个文件,如果不存在就打开文件失败    assert( fp ); //所以这里出错    fclose( fp ); //程序永远都执行不到这里来    return 0;   } 2.时间操作函数 sleep(int s); //秒 usleep(int us); //微秒 #include 获取当前系统时间 UTC time_t time(time_t* t); 获取北京时间 s

25、truct tm *locattime(time_t *timep); timep:是time的返回值 返回值的结构: struct tm{ int tm_sec; //秒 int tm_min; //分 int tm_hour; //时 int tm_mday; //日 int tm_mon; //月 从0算起 int tm_year; //年 从1900年算起的年 即1900年为0 01 为1 int tm_wday; //星期几 int tm_yday; //一年的第几天 }; time_t t; time(&t); //获取系统时间 struct tm *p=localtime(&t); printf("y=%d,m=%d,d=%d,w=%d\n",p->tm_year+1900,p->tm_mon+1,p->tm_mday,p->tm_wday);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服