文件操作(Linux系统编程)

创建一个目录时,系统会自动创建两个目录.和..

C语言实现权限控制函数

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<sys/types.h>
  4. #include<sys/stat.h>
  5.  
  6. int main(int argc , char **argv){
  7. int mode;
  8. int mode_u;
  9. int mode_g;
  10. int mode_o;
  11. char *path;
  12.  
  13. ){
  14. printf(]);
  15. exit();
  16. }
  17. //字符串转换成整型
  18. mode = atoi(argv[]);
  19. || mode < ){
  20. printf("mode num error ! \n");
  21. exit();
  22. }
  23.  
  24. mode_u = mode / ;
  25. mode_g = (mode - (mode_u*)) / ;
  26. mode_o = mode - (mode_u*) - (mode_g*);
  27. mode = (mode_u * * ) + (mode_g * ) + mode_o;
  28. path = argv[];
  29. //改变权限函数
  30. ){
  31. perror("chmod error");
  32. exit();
  33. }
  34.  
  35. ;
  36. }
  37.  
  38. 新建一个文件test.c
  39. 命令:./程序 test.c

2.文件的输入输出函数

  1. #include<stdio.h>
  2. #include<sys/types.h>
  3. #include<sys/stat.h>
  4. #include<fcntl.h>
  5. #include<unistd.h>
  6. #include<errno.h>
  7.  
  8. int main(){
  9. int fd;
  10. //文件不存在创建文件
  11. ){
  12. // if((fd = creat("example.c",S_IRWXU)) == -1){
  13. // perror("open");
  14. printf("open:%s with errno :%d \n", strerror(errno),errno);
  15. exit();
  16. }else{
  17. printf("create file success\n");
  18. }
  19. //}
  20.  
  21. close(fd);
  22. ;
  23.  
  24. }
  25.  
  26. my_creat.c: In function main’:
  27. my_creat.c:: warning: incompatible implicit declaration of built-in function exit

3.文件的读写
文件读写和文件读写指针的移动操作

  1. #include<stdio.h>
  2. #include<sys/types.h>
  3. #include<sys/stat.h>
  4. #include<fcntl.h>
  5. #include<unistd.h>
  6. #include<errno.h>
  7.  
  8. /**error handle function **/
  9. void my_err(const char *err_string , int line){
  10. fprintf(stderr,"line:%d",line);
  11. perror(err_string);
  12. exit();
  13. }
  14. /**read data function**/
  15. int my_read(int fd){
  16. int len;
  17. int ret;
  18. int i;
  19. ];
  20. /**get file length and save file-read-pointer to the head of file **/
  21. , SEEK_END) == -){
  22. my_err("lseek",_LINE_);
  23. }
  24. ,SEEK_CUR)) == -){
  25. my_err("lseek",_LINE_);
  26. }
  27. ,SEEK_SET)) == -){
  28. my_err("lseek",_LINE_);
  29. }
  30.  
  31. printf("len :%d\n",len);
  32. /**read data**/
  33. ){
  34. my_err("read",_LINE_);
  35. }
  36. /**print data**/
  37. ; i < len ; i++){
  38. printf("%c",read_buf[i]);
  39. }
  40. printf("\n");
  41.  
  42. return ret;
  43. }
  44. int main(){
  45. int fd ;
  46. ] = "hello world!";
  47. /**create file in current dictionary**/
  48. ){
  49. ){
  50. my_err(, Top
  51. }else{
  52. printf("create file success!");
  53. }
  54. /*wirte data*/
  55. if(wirte(fd,write_buf,strlen(write_buf)) != strlen(write_buf)){
  56. my_err("write",_LINE_);
  57. }
  58. my_read(fd);
  59.  
  60. /**display file's space**/
  61. printf("--------------------\n");
  62. ,SEEK_END) == -){
  63. my_err("lseek",_LINE_);
  64. }
  65.  
  66. if(write(fd,write_buf,strlen(write_buf)) != strlen(write_buf)){
  67. my_err("write",_LINE_);
  68. }
  69. my_read(fd);
  70.  
  71. close(fd);
  72.  
  73. ;
  74. }
  75. }

Linux C 程序 文件操作(Linux系统编程)(14)的更多相关文章

  1. 3)Linux程序设计入门--文件操作

    )Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...

  2. Linux学习记录--文件IO操作相关系统编程

    文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...

  3. Linux(三)__文件权限、系统的查找、文本编辑器

    一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...

  4. 5 个在 Linux 中管理文件类型和系统时间的有用命令

    对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...

  5. 一、linux基础-对文件操作

    1.1文件夹创建-复制-移动-重命名-删除1.创建文件夹mkdir zjbdir 2.复制文件/文件夹复制文件到:当前目录cp -r zjbdir  zjbdir201600819复制文件到:当前目录 ...

  6. linux下的文件操作——批量重命名

    概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...

  7. Linux 目录和文件操作

    Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...

  8. Linux下的文件操作——基于文件指针的文件操作(缓冲)

    目录操作 创建和删除目录: 原型为: #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> ...

  9. Linux中gz文件操作遇到的一些技巧和坑

    目录 不解压情况下获取gz超大文件的前/后几行? Perl读入gz文件操作? 不能直接通过wc -l 来统计gz文件的行数 前提是gz文件超大,如上百G,肯定不能直接解压来做. 不解压情况下获取gz超 ...

随机推荐

  1. iOS开发——图形编程OC篇&粘性动画以及果冻效果

    粘性动画以及果冻效果 在最近做个一个自定义PageControl——KYAnimatedPageControl中,我实现了CALayer的形变动画以及CALayer的弹性动画,效果先过目: 先做个提纲 ...

  2. mysql 分布式事务

    php + mysql 分布式事务 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元: 事务应该具有4个属性:原子性.一致性.隔离性.持续性 原子性(atomicit ...

  3. 循环语句until和while

    一.until语句的基本格式 until 条件测试 do 语句块 done 只要条件测试语句未成功结束,则执行语句块.(如果一开始条件测试语句就成功退出,那么一次也不执行语句块.这里跟C语言中的do. ...

  4. Android:TabHost实现Tab切换

    TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab的表情,FrameLayout是Tab内容. 实现方式有两种: 1.继承TabA ...

  5. Cent OS安装TL-WN725N 2.0 USB驱动

    TP Link官方没有提供TL-WN725N 2.0的Linux驱动下载,折腾了我半天,试了各种方法.也有一部分原因是因为这机器还不能联网,导致有一些驱动因为缺少依赖并不成功安装. 后来终于在gith ...

  6. 关于 ES6箭头函数

    转自  http://simplyy.space/article/577c5b0dcbe0a3e656c87c24 多个连续的箭头函数与柯里化 高阶函数 高阶函数定义:将函数作为参数或者返回值是函 ...

  7. xmlns="http://schemas.xmlsoap.org/wsdl/",这是什么意思,我只知道:xmlns:xx=....,

    表示没有prefix,相当于你的xsi为空.这个很常用,后面就省得每行都要加一个前缀了. 解决方案 » "后面就省得每行都要加一个前缀了",意思是,后面的子元素如果没有名称空间前缀 ...

  8. PE制作实录 —— 补充说明

    上一篇博文中我提到了定制 PE 合盘的方法,可能还有一些朋友不是很懂,这里补充几点. 要点1: 菜单的排布 U盘启动时的界面,这里叫做主界面,而主界面下有时还会用到子界面,下面是我制作的PE的菜单目录 ...

  9. HDOJ2008数值统计

    数值统计 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  10. fresco的源码学习自我总结

    前言 对fresco框架源码的阅读学习,学习优秀的编码方式和较为实用常见设计模式,该篇讲得比较浅,主要是理清三个主要类的之间的关系. 本篇目录 fresco框架的MVC模式 fresco的Drawee ...