当前位置:首页 » 操作系统 » linuxc文件函数

linuxc文件函数

发布时间: 2024-04-24 12:39:32

c语言函数编写:文件复制

C语言实现一个简单的文件复制功能,linux环境下。
思路步骤:(下代码最重要的逻辑步骤清晰)
第一步:打开源文件(要复制的文件),打开文件的方式以读的方式就可以了。
Linux C打开文件的库函数有:int open(const char *pathname,int flags),int open(const char *pathname,mode_t mode),以及 FILE*fopen(const char *path,const char *mode),FILE *fdopen(int fd,const char *mode),这几个函数,具体的使用方法就查看manual就可以了。
第二步:创建目标文件,所用的函数也是上面那几个。
第三步:读取文件。库函数有:size_t read(int fd,void *buf,size_t count),
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream)
第三步:写入目标文件。用的库函数:size_t write(int fd,void *buf,size_t count),
size_t fwrite(void *ptr,size_t size,size_t nmemb,FILE*stream)
第四步:关闭文件。库函数:int fclose(FILE*fp) ,int close(int fd)
思路步骤就是这样子的了。下面是具体的代码实现。

#include
#include
#include
#include
#include
#include

int main(int argc,char *argv[])
{
int fd_source_file,fd__file;//用接受int open()函数返回的值
//FILE *fp_source_file,*fp__file;//如果用FILE *fopen()函数的话
int size_read,size_write;

char buf[1024];
char _file_name[50];
//检查参数的输入
if(argc<3)
{
printf("usage: ./a.out source_file_path _file_path\n");
exit(1);
}

//复制目标文件名
strcpy(_file_name,argv[2]);

//打开源文件
if( (fd_source_file=open(argv[1],O_RDONLY,00744))<0 )
{
perror("open source file error");
exit(1);
}

//创建目标文件
if( (fd__file=open(argv[1],O_CREAT|O_RDWR)) <0 )
{
perror("create file error");
exit(1);
}

do
{
//读取文件内容
if( (size_read=read(fd_source_file,buf,1024)) <0 )
{
perror("read source file error");
exit(1);
}

//写入目标文件
if( (size_write=write(fd__file,buf,sieze_read))<0 )
{
perror("wrire file error");
exit(1);
}

}while(size_read==1024)

return 0;
}

Ⅱ linux c用什么函数创建文件夹

Linux c语言可以使用系统提供的mkdir函数来创建文件夹。

1、函数原型

int mkdir(const char *path, mode_t mode);

2、参数说明:

path是目录名
mode是目录权限

3、需要头文件

#include<sys/stat.h>

4、示例

//添加mkdir函数声明头文件
#include<sys/stat.h>
#include<sys/types.h>
intmain()//主函数
{
//直接调用mkdir函数
//建立一个名为的文件夹
//权限为0777,即拥有者权限为读、写、执行
//拥有者所在组的权限为读、写、执行
//其它用户的权限为读、写、执行
mkdir("",0777);
return0;
}

说明:函数调用试图建立777权限的文件夹,但是在实际程序执行时,还需要考虑umask值,最终才会得到实际的权限。

5、执行效果如下图所示

说明:t.c是源码文件,有gcc进行编译,-o是gcc的参数,有于指明编译后输出的文件,t为源码经gcc编译后生成的可执行文件。./t是执行当前目录下的生成的可执行文件t。

Ⅲ Linux下编写c语言头文件,编译时出现“函数未定义”

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。


根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。

方法如下

gcc-cmain.c#-c参数的作用是让gcc只编译,不链接
gcc-ctest.c
gcc-omainmain.otest.o#将编译好的目标代码链接

当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

热点内容
拉筋要加密 发布:2024-11-27 15:38:51 浏览:323
电脑当服务器怎么降低功耗 发布:2024-11-27 15:30:45 浏览:641
苹果手机夸克缓存的视频怎么转为本地视频 发布:2024-11-27 15:24:05 浏览:810
linuxm4 发布:2024-11-27 15:15:12 浏览:321
算法交易现状 发布:2024-11-27 15:05:49 浏览:825
搜同网服务器为什么登录不上 发布:2024-11-27 15:05:41 浏览:287
如何让无线网速变快华为安卓手机 发布:2024-11-27 15:04:13 浏览:595
cod17编译着色器卡住c盘满了 发布:2024-11-27 14:55:56 浏览:386
锁机软件反编译 发布:2024-11-27 14:36:02 浏览:148
欣才php培训中心 发布:2024-11-27 14:35:57 浏览:938