c语言函数的文件路径,c语言文件相对路径

c语言中如何得到当前文件所在位置

如果是通过open方式打开的,那么第一个参数就是文件路径信息:

威宁ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

#include sys/types.h

#include sys/stat.h

#include fcntl.h

int open(const char *path, int oflag, /* mode_t mode */...);

如果是通过fopen方式打开的,那么第一个参数就是文件路径信息:

#include stdio.h

FILE *fopen(const char *filename, const char *mode);

无论通过open还是fopen打开文件,都必须先知道文件路径信息,尽管可能是相对路径。

如果知道了filename的内容,我们就可以定位它的绝对路径,也就是你说的完全路径。

1. filename本身就是绝对路径,ok。

2. filename是相对路径,那么先通过getcwd获取进程的执行路径,然后再获取绝对路径即可。

#include unistd.h

extern char *getcwd(char *buf, size_t size);

但是,如果进程在打开文件后又执行了chdir、fchdir之类函数的话,估计就不能够再获取文件路径信息了。

#include unistd.h

int chdir(const char *path);

int fchdir(int fildes);

在C语言里标准函数存放在什么文件中?

C语言标准库函数存放在头文件当中,使用相应函数时需要用include引用先关头文件。

C语言程序设计里,C 标准函数(C Standard library)是所有目前符合标准的头文件(head

file)的集合,以及常用的函数库实现程序,例如 I/O输入输出和字串符控制。不像 COBOL、Forrian和 PL/I等编程语言,在 C

语言的工作任务里不会包含嵌入的关键字,所以几乎所有的 C 语言程序都是由标准函数库的函数来创建的。

下面列出C89及C99中C语言标准函数库的头文件。

C89中标准的头文件

assert.h 设定断言点

ctype.h 字符处理

errno.h 错误报告

float.h 定义与实现相关的浮点值勤

limits.h 定义与实现相关的各种极限值

locale.h 支持函数setlocale()

math.h 数学函数库使用的各种定义

setjmp.h 支持非局部跳转

signal.h 定义信号值

stdarg.h 支持可变长度的变元列表

stddef.h 定义常用常数

stdio.h 支持文件输入和输出

stdlib.h 其他各种声明

string.h 支持串函数

time.h 支持系统时间函数

C99新增的头文件和库

complex.h 支持复数算法

fenv.h 给出对浮点状态标记和浮点环境的其他方面的访问

inttypes.h 定义标准的、可移植的整型类型集合。也支持处理最大宽度整数的函数

iso646.h 首先在此1995年第一次修订时引进,用于定义对应各种运算符的宏

stdbool.h 支持布尔数据类型类型。定义宏bool,以便兼容于C++

stdint.h 定义标准的、可移植的整型类型集合。该文件包含在inttypes.h中

tgmath.h 定义一般类型的浮点宏

wchar.h 首先在1995年第一次修订时引进,用于支持多字节和宽字节函数

wctype.h 首先在1995年第一次修订时引进,用于支持多字节和宽字节分类函数

c语言如何获得文件当前路径?

C语言里

在main函数的第二个参数里面,

保存着当前程序运行的目录

也就是argv[0]

main( int argc, char *argv[])

{

printf("%s ", argv[0] );

}

就是文件当前所在位置

不过需要注意的一点是

这个路径里面保存了当前文件的文件名

如果你只是需要路径的话还需要自己操作一下

main(int a,char *c[])

{

char s[100];

int i;

//把路径保存到字符串s里

strcpy(s,c[0]);

for(i=strlen(s); i0 ; i--)

if( s[i] == '\\')

{

s[i]='\0';

break;

}

//找到最后一个 \ 并删除之后的内容

//最后输出的s,就是当前文件的路径了

puts(s);

}

C语言试题 编写一个获取文件路径的函数

#include stdio.h

main()

{

char str[80]="d:\\files\\dataFiles\\data\\avatar.bmp"; // 单斜杠处填双斜杠

int L,i;

L = strlen(str);

for (i=L-1;i=0;i--) if (str[i] == '\\') { str[i] ='\0'; break;}; // 去掉文件名就是路径

printf("Path= %s",str);

return 0;

}

-----------

写成函数和调用:

#include stdio.h

void fun(char *str){

int L,i;

L = strlen(str);

for (i=L-1;i=0;i--) if (str[i] == '\\') { str[i] ='\0'; break;};

}

main()

{

char str[80]="d:\\files\\dataFiles\\data\\avatar.bmp";

fun(str);

printf("Path= %s",str);

return 0;

}

c语言程序如何设置默认路径

可以为main函数增加两个参数

int

main(int

argc,char*

argv[])

{

return

0;

}

argc

是命令行参数的个数,argv是一个字符串数组,代表以空格分隔的命令行参数,其中

argv[0]

是程序自身的路径(包括文件名)。

也可以使用API函数

GetModuleFileName

,用法如下,需要包含头文件

windows.h

tchar.h

TCHAR

szFile[MAX_PATH]

=

{0};

DWORD

dwLen

;

//返回路径长度

dwLen

=

GetModuleFileName(NULL,szFile,MAX_PATH);

此时,szFile

中保存了程序本身的路径,可以将最后的扩展名改为

txt

即可得到一个与程序同路径同名的文本文件名,将数据写入其中即可。

代码如下:

szFile[dwLen

-3]

=

0;

_tcscat(szFile,_T("txt"));

此时,szFile

就是一个文件文件路径了,可以直接用。

我想,你所说的默认路径,可以先把一个路径(想要的默认路径)保存到一个字符数组中,输入文件名后,用

strcat

函数把文件名连接到默认路径的后面就可以了。

如果要改变路径,就用

strcpy

直接把新的路径复制到字符数组中。

linuxc语言函数库在什么路径

一般来说是放在/usr/include目录下的;

但是这个并不局限也是可控的,如果我们进行开发过程中, 就会在内核的库函数文件目录:

例如在:/XXX/XXX/linux-X.X/include

所以根据不同的情况,头文件存放的目录也是不同的,具体需要可以根据locate和grep命令进行查询。


本文题目:c语言函数的文件路径,c语言文件相对路径
文章出自:http://pwwzsj.com/article/hsesjp.html