我们正常的图片复制就很简单 右键复制 然后粘贴就好了 今天在LInux终端使用c语言对照片进行拷贝
首先得知道一点 图片其实是由二进制0101组成的 如下图的照片二哈.jpeg

然后进行代码实现:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<assert.h>
int main()
{
int fdr = open("二哈.jpeg",O_RDONLY); //只读
int fdw = open("三哈.jpeg",O_WRONLY | O_CREAT,0600);//写和创建三哈.jpeg 0600是权限
if(fdr == -1 || fdw == -1) //创建和打开失败 返回值为-1
{
exit(0);//直接终止掉程序
}
char buff[1024] = {0};
int num = 0;
while((num = read(fdr,buff,50)) > 0) //文件标识符往buff中去读取 每次50个字节
//ssize_t read(int fd, void *buf, size_t count);
//这块fdr是文件描述符
{
write(fdw,buff,num); //每次写入num个字节
}
close(fdr);
close(fdw);
}
然后来看实现该程序之后的文件夹目录

照片已经成功复制!
这块还有个知识点就是在Windows下 文本文件和二进制文件的读取方法不一样 但是最底层来说 无论是文本文件还是二进制文件都是二进制0101这些数字组成的 但是在Windows下还是有区别的 在Linux下读取 打开 创建什么的没有区别!

本文介绍了如何在Linux终端通过C语言实现图片的拷贝操作。通常,图片由二进制数据组成。代码实现后,成功复制了图片,且在Linux下,读取和创建文本文件与二进制文件的方式没有区别。
675

被折叠的 条评论
为什么被折叠?



