系统调用实现Linux命令 cp
来源:互联网 发布:网易闪电邮for mac版 编辑:程序博客网 时间:2024/05/16 00:30
和命令ls一样,我以前在网易上写的搬过来,嘻嘻!
cp.c如下:
#include "cp.h"//注意:计算完文件大小后 要记得指针复位//记得关闭文件void cp(char src_path_filename[],char dest_path_filename[]){/*查看源文件是否可读 F_OK是否存在*/if(-1 == access(src_path_filename, R_OK)){ERR_PRINT("<cp.h>In FUNC (cp):access");}/*以只读方式打开源文件*/int fd_src = open(src_path_filename,O_RDONLY);/*计算源文件大小*/int file_size = lseek(fd_src,0,SEEK_END);//计算源文件的大小lseek(fd_src,0,SEEK_SET);//源文件指针复位char buf[file_size]; //定义缓冲区来接收源文件内容加一个\0/*读取源文件内容放入buf 并返回实际读取字节数*/int read_size = read(fd_src,buf,file_size-1);//因为去掉\0 不减1会多一个换行if(-1 == read_size){ERR_PRINT("<cp.h>In FUNC (cp):read");}/*以读写方式打开目标文件 若文件不存在 则创建目标文件*/int fd_dest = open(dest_path_filename,O_RDWR|O_CREAT);/*将buf里面的数据写入到目标文件中*/if(-1 == write(fd_dest,buf,file_size-1)){ERR_PRINT("<cp.h>In FUNC (cp):write");}/*关闭文件*/close(fd_src);//关闭源文件close(fd_dest);//关闭目标文件printf("copy succeed !\n");}main.c如下:
#include "alldef.h"#include "cp.h"/* *功能:C语言实现 cp dir/filename dir/filename 命令(用系统调用) *作者:KayChan *日期:2015-08-06 */int main(int argc,char *argv[]){//cp dir/filename dir/filenamecp(argv[1],argv[2]);return 0;}执行时:当前目录下,./cp 源文件名 目标文件
阅读全文
0 0
- 系统调用实现Linux命令 cp
- 实现linux cp命令( 系统调用版 )
- linux cp 命令实现
- linux命令实现:cp
- Linux 实现cp 命令
- 系统调用的文件编程实现cp命令
- 用c语言程序实现系统的cp命令 在linux下调用syscalls.h头文件
- linux 的cp命令实现
- linux cp 命令的实现
- 嵌入式Linux cp命令实现
- Linux下cp命令实现
- Linux系统调用 file-cp.c
- Linux系统编程之模拟命令cp
- Linux&C编程之Linux系统命令“cp -r”的简单实现
- Linux命令实现(2)cp
- Linux文件复制cp命令的实现
- C语言实现Linux cp命令
- linux下cp命令---C代码实现
- Android界面设计语言Material Design的一些用法
- POJ 2104 K-th Number 整体二分
- mysql trim函数
- 三种常用的Apk反编译工具
- Lucene 5.0 stored fields format & compress
- 系统调用实现Linux命令 cp
- eclipse下的plugins导入hadoop-eclipse-plugin-2.7.1.jar,Preference下没有hadoop Map/Reduce的解决方法
- 读书笔记——《模式识别 Pattern Recognition》
- PHP mysql_num_fields() 函数
- 通过git命令行从github或服务器上克隆、修改和更新项目
- BZOJ 4247: 挂饰 背包dp
- 生活方式游戏化
- 在VPS服务器上搭建属于自己的nginx服务器
- 游戏化思维总结