當前位置:首頁 » 編程語言 » c語言怎麼獲得當前程序運行路
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼獲得當前程序運行路

發布時間: 2022-06-09 09:38:47

c語言中什麼函數可以設置程序的當前工作路徑解決辦法

chdir函數
int chdir(char *path);
功 能:更改當前工作目錄。
參 數:Path 目標目錄,可以是絕對目錄或相對目錄。
返回值:成功返回0 ,失敗返回-1

VC下是_chdir 前面加一個下劃線
TC和gcc下就是chdir

② [C語言] 運行C程序的步驟

(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內(如果不特別指定,一般存放在用戶當前目錄下),文件用.c作為後綴,生成源程序文件,如f.c。

(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」(又稱「預處理程序」或「預編譯器」)對程序中的預處理指令進行編譯預處理。例如,對於#include<stdio.h>指令來說,就是將stdio.h頭文件的內容讀進來,取代#include<stdio.h>行。由預處理得到的信息與程序其他部分一起組成一個完整的、可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。
編譯的作用首先是對源程序進行檢查,判定它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修改程序後重新進行編譯,如果還有錯,再發出「出錯信息」。如此反復進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進制形式的目標程序(在Visual C++中後綴為.obj,如f.obj)。如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進制目標文件(後綴為.obj)還不能供計算機直接執行。前面已說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對應的目標文件(也稱目標模塊),它只是整個程序的一部分。必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序(executive program),在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」(linkage editor)的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖1.2所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成開發環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。

③ Windows下怎麼用C語言獲取正在運行的程序的路徑

很簡單:
API函數:
GetMoleFileName(模塊句柄,保存的字元數組,字元數組的大小);
一般來說,要獲取正在運行程序的全路徑,那就在第一個參數寫個0
參數2是保存的數組,獲取的路徑將保存在這個數組
參數三是字元數組的大小
給你一個示常式序:
#include <windows.h>
#include <stdio.h>
void main()
{
char ExePlace[1024];/*保存地址的數組/
GetMoleFileName(0,ExePlace,1024);/*獲取當前運行全路徑*/
puts(ExePlace);/*輸出獲取到的路徑*/
}

④ C語言 如何取得當前可執行程序所在的路徑

一般默認的目錄是和你所遍的程序在同一個目錄里如果你想改,那麼只要在使用fopen函數的時候輸入目錄地址就可以了要注意的是一旦你這個程序生成了exe在脫離編譯器運行的時你所定的目錄就不能改變了也就是說你自能在寫程序時定義一次目標文件的路徑

⑤ c語言怎麼獲得當前程序運行路徑

main參數啊!
int
main(int
argc,char
*argv[])
{
printf(argv[0]);
return
0;
}
這樣得到一個字元串,從中提取出路徑不是難事,如果不行Q960575562

⑥ C語言中怎麼取本身程序的運行名和運行目錄

如果你的c編譯器支持wim32 api的話,那麼當前的目錄有api GetCurrentDirectory取得,由GetMoleFileName可獲得程序路徑,從最後開始到第一個"\"結束,就是程序名。

⑦ 用c 怎麼獲取當前程序所在的路徑

要用 c++ 程序:
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;;
string ExePath() {
char buffer[MAX_PATH];
GetMoleFileName( NULL, buffer, MAX_PATH );
string::size_type pos = string( buffer ).find_last_of( "\\/" );
return string( buffer ).substr( 0, pos);
}
int main() {
cout << "my directory is " << ExePath() << "\n";
}

=====
c 程序,也許可以通過char *argv[] 尋找,
int main(int argc, char *argv[]){。。。。}
argv[0] 含程序名,可以嘗試 用 system() 調 DOS 命令查找:
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
char s[80];
sprintf(s,"DIR %s.c > a.log",argv[0]);
system(s); // 執行後,屏幕輸出 存入 a.log 文本文件
fp =fopen("a.log","r"); // 打開文件
// 這里 一行一行地讀文件,找到 關鍵詞 Directory of , 例如:
// Directory of D:\ZZ\C\example
// D:\ZZ\C\example 就是當前路徑
return 0;
}

⑧ c語言運行按鈕怎麼弄出來

現在來看看,c語言運行按鈕如何編譯。

設備:聯想電腦

系統:win8

軟體:VC ++6.0

1、首先啟動編譯軟體程序,點擊編譯程序。

⑨ 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); i>0 ; i--)
if( s[i] == '\\')
{
s[i]='\0';
break;
}
//找到最後一個 \ 並刪除之後的內容
//最後輸出的s,就是當前文件的路徑了
puts(s);
}