Linux C 程序 文件操作(Linux系统编程)(14)
文件操作(Linux系统编程)
创建一个目录时,系统会自动创建两个目录.和..
C语言实现权限控制函数
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc , char **argv){
int mode;
int mode_u;
int mode_g;
int mode_o;
char *path;
){
printf(]);
exit();
}
//字符串转换成整型
mode = atoi(argv[]);
|| mode < ){
printf("mode num error ! \n");
exit();
}
mode_u = mode / ;
mode_g = (mode - (mode_u*)) / ;
mode_o = mode - (mode_u*) - (mode_g*);
mode = (mode_u * * ) + (mode_g * ) + mode_o;
path = argv[];
//改变权限函数
){
perror("chmod error");
exit();
}
;
}
新建一个文件test.c
命令:./程序 test.c
2.文件的输入输出函数
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<errno.h>
int main(){
int fd;
//文件不存在创建文件
){
// if((fd = creat("example.c",S_IRWXU)) == -1){
// perror("open");
printf("open:%s with errno :%d \n", strerror(errno),errno);
exit();
}else{
printf("create file success\n");
}
//}
close(fd);
;
}
my_creat.c: In function ‘main’:
my_creat.c:: warning: incompatible implicit declaration of built-in function ‘exit’
3.文件的读写
文件读写和文件读写指针的移动操作
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<errno.h>
/**error handle function **/
void my_err(const char *err_string , int line){
fprintf(stderr,"line:%d",line);
perror(err_string);
exit();
}
/**read data function**/
int my_read(int fd){
int len;
int ret;
int i;
];
/**get file length and save file-read-pointer to the head of file **/
, SEEK_END) == -){
my_err("lseek",_LINE_);
}
,SEEK_CUR)) == -){
my_err("lseek",_LINE_);
}
,SEEK_SET)) == -){
my_err("lseek",_LINE_);
}
printf("len :%d\n",len);
/**read data**/
){
my_err("read",_LINE_);
}
/**print data**/
; i < len ; i++){
printf("%c",read_buf[i]);
}
printf("\n");
return ret;
}
int main(){
int fd ;
] = "hello world!";
/**create file in current dictionary**/
){
){
my_err(, Top
}else{
printf("create file success!");
}
/*wirte data*/
if(wirte(fd,write_buf,strlen(write_buf)) != strlen(write_buf)){
my_err("write",_LINE_);
}
my_read(fd);
/**display file's space**/
printf("--------------------\n");
,SEEK_END) == -){
my_err("lseek",_LINE_);
}
if(write(fd,write_buf,strlen(write_buf)) != strlen(write_buf)){
my_err("write",_LINE_);
}
my_read(fd);
close(fd);
;
}
}
Linux C 程序 文件操作(Linux系统编程)(14)的更多相关文章
- 3)Linux程序设计入门--文件操作
)Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- Linux(三)__文件权限、系统的查找、文本编辑器
一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...
- 5 个在 Linux 中管理文件类型和系统时间的有用命令
对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...
- 一、linux基础-对文件操作
1.1文件夹创建-复制-移动-重命名-删除1.创建文件夹mkdir zjbdir 2.复制文件/文件夹复制文件到:当前目录cp -r zjbdir zjbdir201600819复制文件到:当前目录 ...
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- Linux 目录和文件操作
Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...
- Linux下的文件操作——基于文件指针的文件操作(缓冲)
目录操作 创建和删除目录: 原型为: #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> ...
- Linux中gz文件操作遇到的一些技巧和坑
目录 不解压情况下获取gz超大文件的前/后几行? Perl读入gz文件操作? 不能直接通过wc -l 来统计gz文件的行数 前提是gz文件超大,如上百G,肯定不能直接解压来做. 不解压情况下获取gz超 ...
随机推荐
- Java中for循环以及循环中标签
1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...
- 目录操作函数opendir、readdir和closedir
首先,明确一个类型DIR的含义: #include <dirent.h> DIR A type representing a directory stream. DIR是在目录项格式 ...
- 利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 经过前三篇文章 基础准备 . 构建路由 和 设计 ...
- Linux 学习笔记 查看文件内容诸多命令
查看文件内容 1.查看文件统计信息 stat 提供文件系统上某个文件的所有状态信息 2.查看文件类型 file 用来查看文件类型 (该命令将文件分成3类:文本类型:可执行文件:数据文件) 如果你有从未 ...
- 小白日记29:kali渗透测试之Web渗透-扫描工具-Vega
WEB扫描工具-Vega 纯图形化界面,Java编写的开源web扫描器.两种工作模式:扫描模式和代理模式[主流扫描功能].用于爬站.处理表单,注入测试等.支持SSL:http://vega/ca.cr ...
- Tomcat配置随笔
启动内存参数的配置 tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh 在rem 的后面增加如下参数 set JAVA_OPTS= -Xms256m -Xm ...
- 使用NumberPicker定制自己喜欢的Date&TimePicker
1.NumberPicker简介: NumberPicker是Android3.0之后引入的一个控件,主要功能是用于选择一组预定义好数字的控件. 该控件主要需要指导一个用于监听当前value变化的li ...
- HDU 3999 The order of a Tree 二叉搜索树 BST
建一个二叉搜索树,然后前序输出. 用链表建的,发现很久没做都快忘了... #include <cstdio> #include <cstdlib> struct Node{ i ...
- mongoDB 插入数据 用java实现
import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; impor ...
- 转:Linux网络IO并行化技术概览
转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...