成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語(yǔ)言函數(shù)的文件路徑,c語(yǔ)言文件相對(duì)路徑

c語(yǔ)言中如何得到當(dāng)前文件所在位置

如果是通過(guò)open方式打開(kāi)的,那么第一個(gè)參數(shù)就是文件路徑信息:

威寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

#include sys/types.h

#include sys/stat.h

#include fcntl.h

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

如果是通過(guò)fopen方式打開(kāi)的,那么第一個(gè)參數(shù)就是文件路徑信息:

#include stdio.h

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

無(wú)論通過(guò)open還是fopen打開(kāi)文件,都必須先知道文件路徑信息,盡管可能是相對(duì)路徑。

如果知道了filename的內(nèi)容,我們就可以定位它的絕對(duì)路徑,也就是你說(shuō)的完全路徑。

1. filename本身就是絕對(duì)路徑,ok。

2. filename是相對(duì)路徑,那么先通過(guò)getcwd獲取進(jìn)程的執(zhí)行路徑,然后再獲取絕對(duì)路徑即可。

#include unistd.h

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

但是,如果進(jìn)程在打開(kāi)文件后又執(zhí)行了chdir、fchdir之類函數(shù)的話,估計(jì)就不能夠再獲取文件路徑信息了。

#include unistd.h

int chdir(const char *path);

int fchdir(int fildes);

在C語(yǔ)言里標(biāo)準(zhǔn)函數(shù)存放在什么文件中?

C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)存放在頭文件當(dāng)中,使用相應(yīng)函數(shù)時(shí)需要用include引用先關(guān)頭文件。

C語(yǔ)言程序設(shè)計(jì)里,C 標(biāo)準(zhǔn)函數(shù)(C Standard library)是所有目前符合標(biāo)準(zhǔn)的頭文件(head

file)的集合,以及常用的函數(shù)庫(kù)實(shí)現(xiàn)程序,例如 I/O輸入輸出和字串符控制。不像 COBOL、Forrian和 PL/I等編程語(yǔ)言,在 C

語(yǔ)言的工作任務(wù)里不會(huì)包含嵌入的關(guān)鍵字,所以幾乎所有的 C 語(yǔ)言程序都是由標(biāo)準(zhǔn)函數(shù)庫(kù)的函數(shù)來(lái)創(chuàng)建的。

下面列出C89及C99中C語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)的頭文件。

C89中標(biāo)準(zhǔn)的頭文件

assert.h 設(shè)定斷言點(diǎn)

ctype.h 字符處理

errno.h 錯(cuò)誤報(bào)告

float.h 定義與實(shí)現(xiàn)相關(guān)的浮點(diǎn)值勤

limits.h 定義與實(shí)現(xiàn)相關(guān)的各種極限值

locale.h 支持函數(shù)setlocale()

math.h 數(shù)學(xué)函數(shù)庫(kù)使用的各種定義

setjmp.h 支持非局部跳轉(zhuǎn)

signal.h 定義信號(hào)值

stdarg.h 支持可變長(zhǎng)度的變?cè)斜?/p>

stddef.h 定義常用常數(shù)

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

stdlib.h 其他各種聲明

string.h 支持串函數(shù)

time.h 支持系統(tǒng)時(shí)間函數(shù)

C99新增的頭文件和庫(kù)

complex.h 支持復(fù)數(shù)算法

fenv.h 給出對(duì)浮點(diǎn)狀態(tài)標(biāo)記和浮點(diǎn)環(huán)境的其他方面的訪問(wèn)

inttypes.h 定義標(biāo)準(zhǔn)的、可移植的整型類型集合。也支持處理最大寬度整數(shù)的函數(shù)

iso646.h 首先在此1995年第一次修訂時(shí)引進(jìn),用于定義對(duì)應(yīng)各種運(yùn)算符的宏

stdbool.h 支持布爾數(shù)據(jù)類型類型。定義宏bool,以便兼容于C++

stdint.h 定義標(biāo)準(zhǔn)的、可移植的整型類型集合。該文件包含在inttypes.h中

tgmath.h 定義一般類型的浮點(diǎn)宏

wchar.h 首先在1995年第一次修訂時(shí)引進(jìn),用于支持多字節(jié)和寬字節(jié)函數(shù)

wctype.h 首先在1995年第一次修訂時(shí)引進(jìn),用于支持多字節(jié)和寬字節(jié)分類函數(shù)

c語(yǔ)言如何獲得文件當(dāng)前路徑?

C語(yǔ)言里

在main函數(shù)的第二個(gè)參數(shù)里面,

保存著當(dāng)前程序運(yùn)行的目錄

也就是argv[0]

main( int argc, char *argv[])

{

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

}

就是文件當(dāng)前所在位置

不過(guò)需要注意的一點(diǎn)是

這個(gè)路徑里面保存了當(dāng)前文件的文件名

如果你只是需要路徑的話還需要自己操作一下

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;

}

//找到最后一個(gè) \ 并刪除之后的內(nèi)容

//最后輸出的s,就是當(dāng)前文件的路徑了

puts(s);

}

C語(yǔ)言試題 編寫一個(gè)獲取文件路徑的函數(shù)

#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;

}

-----------

寫成函數(shù)和調(diào)用:

#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語(yǔ)言程序如何設(shè)置默認(rèn)路徑

可以為main函數(shù)增加兩個(gè)參數(shù)

int

main(int

argc,char*

argv[])

{

return

0;

}

argc

是命令行參數(shù)的個(gè)數(shù),argv是一個(gè)字符串?dāng)?shù)組,代表以空格分隔的命令行參數(shù),其中

argv[0]

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

也可以使用API函數(shù)

GetModuleFileName

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

windows.h

tchar.h

TCHAR

szFile[MAX_PATH]

=

{0};

DWORD

dwLen

;

//返回路徑長(zhǎng)度

dwLen

=

GetModuleFileName(NULL,szFile,MAX_PATH);

此時(shí),szFile

中保存了程序本身的路徑,可以將最后的擴(kuò)展名改為

txt

即可得到一個(gè)與程序同路徑同名的文本文件名,將數(shù)據(jù)寫入其中即可。

代碼如下:

szFile[dwLen

-3]

=

0;

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

此時(shí),szFile

就是一個(gè)文件文件路徑了,可以直接用。

我想,你所說(shuō)的默認(rèn)路徑,可以先把一個(gè)路徑(想要的默認(rèn)路徑)保存到一個(gè)字符數(shù)組中,輸入文件名后,用

strcat

函數(shù)把文件名連接到默認(rèn)路徑的后面就可以了。

如果要改變路徑,就用

strcpy

直接把新的路徑復(fù)制到字符數(shù)組中。

linuxc語(yǔ)言函數(shù)庫(kù)在什么路徑

一般來(lái)說(shuō)是放在/usr/include目錄下的;

但是這個(gè)并不局限也是可控的,如果我們進(jìn)行開(kāi)發(fā)過(guò)程中, 就會(huì)在內(nèi)核的庫(kù)函數(shù)文件目錄:

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

所以根據(jù)不同的情況,頭文件存放的目錄也是不同的,具體需要可以根據(jù)locate和grep命令進(jìn)行查詢。

分享標(biāo)題:c語(yǔ)言函數(shù)的文件路徑,c語(yǔ)言文件相對(duì)路徑
當(dāng)前路徑:http://jinyejixie.com/article28/hsesjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管網(wǎng)站制作、關(guān)鍵詞優(yōu)化、動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化