當前位置:首頁 » 編程軟體 » linux編程文件

linux編程文件

發布時間: 2022-09-08 22:21:59

『壹』 在linux環境下的C編程,比如說C文件叫main.c

樓上的意思是,你擁有源碼,自行編譯生成了匯編文件,你當然可以查看匯編代碼;
但是如果你得到的是一份二進制的文件,obj、或者其他的executable file,你沒有其源碼,這個時候你想分析其文件信息以及匯編源碼,只有通過上述命令了 。。。這個有點像Windows下面的逆向工程(Linux下多開源,因此win下面逆向工程較多也較有意義)。

舉幾個例子:
objmp -x obj 以某種分類信息的形式把目標文檔的數據組織(被分為幾大塊)輸出
objmp -t obj 輸出目標文檔的符號表
objmp -h obj 輸出目標文檔的section概括
-----------------------------------------------------------------------
你應該man一下objmp的,你就知道它具體用途了。

windows下面類似的工具有微軟VS中自帶的mpbin.exe
mpbin xx.exe /exports >exports.txt

『貳』 如何在linux下用c編程實現文件的復制

打開一個讀文件和一個寫文件,用一個循環,fgetc每讀一個字元,就用fputc寫入另一個文件,這樣就實現了文件的復制,和普通的c語言標准庫編程是一樣的,代碼如下:
int c;
FILE *in, *out;

in = fopen("file.in", "r");
out = fopen("file.out", "w");

while( ( c = fgetc(in) ) != EOF)
fputc(c, out);

fclose(in);
fclose(out);

『叄』 Linux編程,怎樣用C語言創建、讀、寫文件呀希望各位賜教!謝謝

既然得到了這文件指針,你想怎麼打開都行,無需知道以前是什麼模式。
用open更新你想要的打開方式。
o_rdonly
以只讀方式打開文件
o_wronly
以只寫方式打開文件
o_rdwr
以可讀寫方式打開文件。上述三種旗標是互斥的,
也就是不可同時使用,
但可與下列的旗標利用or(|)運算符組合。
o_creat
若欲打開的文件不存在則自動建立該文件。
o_excl
如果o_creat
也被設置,
此指令會去檢查文件是否存在。文件若不存在則建立該文件,
否則將導致打開文件錯誤。此外,
若o_creat與o_excl同時設置,
並且欲打開的文件為符號連接,
則會打開文件失敗。
o_noctty
如果欲打開的文件為終端機設備時,
則不會將該終端機當成進程式控制制終端機。
o_trunc
若文件存在並且以可寫的方式打開時,
此旗標會令文件長度清為0,
而原來存於該文件的資料也會消失。
o_append
當讀寫文件時會從文件尾開始移動,
也就是所寫入的數據會以附加的方式加入到文件後面。
o_nonblock
以不可阻斷的方式打開文件,
也就是無論有無數據讀取或等待,
都會立即返回進程之中。
o_ndelay
同o_nonblock。
o_sync
以同步的方式打開文件。
o_nofollow
如果參數pathname
所指的文件為一符號連接,
則會令打開文件失敗。
o_directory
如果參數pathname
所指的文件並非為一目錄,
則會令打開文件失敗。
這是你要的
r
打開只讀文件,
該文件必須存在。
r+
打開可讀寫的文件,
該文件必須存在。
w
打開只寫文件,
若文件存在則文件長度清為0,
即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,
若文件存在則文件長度清為零,
即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,
則會建立該文件,
如果文件存在,
寫入的數據會被加到文件尾,
即文件原先的內容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,
則會建立該文件,
如果文件存在,
寫入的數據會被加到文件尾後,
即文件原先的內容會被保留。

『肆』 Linux編程--文件原子操作

當多個進程同時訪問一個文件的時候,普通的write/read在執行的時候,無法保證操作的原子性,可能會導致文件被污染,達不到預期的結果。

任何一個需要多個函數調用的操作都不可能是原子操作,因為在兩個函數調用間,內核可能會將進程掛起執行另外的進程。

如果想要避免這種情況的話,則需要使用pread/pwrite函數

ssize_t pread(int fd ,void *buffer ,size_t size,off_t offset)
返回真正讀取到的位元組數,offset是指的從文件開始位置起的offset個位元組數開始讀。其餘的參數與read無異。

PS:
pread是無法中斷的原子操作,無法中斷它的定位和讀取操作
pread讀取過後的文件偏移量不會發生改變

同理pwrite也是一樣的

而在文件創建的時候也是一樣的,當需要做文件創建同步的時候,我們需要在O_CREATE的時候,加上O_EXCL標志位,當已經創建過的話,會返回fd,否則返回錯誤

int p( int filedes):
傳入一個文件描述符,返回當前可用的最小文件描述符。

int p2(int filedes,int filedes2):
傳入文件描述符,以及新的文件描述符,如果新的文件描述符所指向的文件已經打開,則會強行將其關閉後,將該文件描述符指向到已存在的文件描述符。
如果filedes和filedes2指向同一個文件,則不做任何處理,直接返回filedes2,不會關閉文件

新返回回來的filedes2會共享filedes的文件狀態標識,文件偏移量等等信息。因為它們的文件指針會指向文件表的同一個位置。只是fd不一樣而已。

『伍』 linux文件編程怎麼刪除文件中的某些

1、刪除文件命令
rm
-f
文件名
將會強行刪除文件,且無提示
2、刪除文件夾以及文件夾中的所有文件命令:
rm
-rf
目錄名字
其中:
-r:向下遞歸刪除
-f:直接強行刪除,且沒有任何提示
注意:
使用rm
-rf要格外注意,linux中沒有回收站,慎重操作。

『陸』 linux shell編程中文件內容修改方法

兩種思路,
第一種,你打開文件,找到匹配的行,改掉,重寫個文件,刪除原來的。改這個文件為一樣的名字。
第二種,以需要改寫的文本,把原來的文件分成兩個部分,要改寫的部分空出,然後重定向合並到一個文件里。
例如,
file.txt
分為
a.txt
b.txt
現在
1
a.txt>file.txt
2
變行
>>file
.txt
3
b.txt
>>file.txt

『柒』 linux文件編程和串口編程的基本概念是什麼

簡單說幾句吧,linux下的設備都是文件,流程也無非是open, read/write, close等當然,串口你得設置各種屬性才行對不對,比如在win下的超級終端就設置了波特率啊,停止位啊,奇偶校驗啊什麼的,這些屬性都通過 int tcgetattr(int fd, struct termios *termios_p); int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);函數來設置。完整代碼嗎自己去google,一把一把的,其實最重要的是設置好屬性,剩下的就是read,write的問題咯。希望對你有用對了,了解終端函數的詳情請在linux命令行終端獲取: man termios

『捌』 Linux下C編程頭文件

你在mymin.c文件中調用printf函數
前提在你mymin.c文件頭包含了其他的文件而這個文件里有包含stdio.h文件
那你在mymin.c文件里可以不包含stdio.h文件

看了下你文件的編寫
還是不合規范
幫你改下:

/*ex_min.h*/

#ifndef
_ex_min_h

#define
_ex_min_h

#include<stdio.h>

int
min(int
n1,int
n2);

#endif

/*ex_min.c*/

#include
"ex_min.h"

int
min(int
n1,int
n2)

{

printf("調用min\n");

if(n1>n2)

return
n1;

else

return
n2;

}

/*mymin.c*/

#include
"ex_min.h"

int
main()

{

int
n1,n2,n3;

scanf("%d,%d",&n1,&n2);

n3=min(n1,n2);

printf("%d",n3);

}

『玖』 如何在linux環境下編輯一個c語言源程序並將其編譯為可執行文件

打開安裝好的Linux系統(ubuntu18.04)

1.安裝編輯器

使用語句:sudo apt-get install vim安裝vim,可以在安裝前查看是否安裝vim編輯器。(特別提示:在安裝vim前最好將軟體更新,使用指令sudo apt-get update.)之所以要加sudo的原因是這些安裝和更新軟體的時候需要使用管理員許可權才可以進行。

2.安裝gcc編譯器

和安裝vim類似使用sudo apt-get install gcc,安裝完成後可以使用cc-v來查看編譯器版本信息等。cc -v界面如下:

『拾』 linux文件編程中的right函數當寫入失敗時返回值為

linux文件編程中的right函數當寫入失敗時返回值為-1。

在成功的時候,讀取的位元組數被返回(0表示文件的結束),並且文件位置被這個數字所增加。如果這個數字小於請求的位元組數,那就不是一個錯誤;例如,這可能會發生,因為現在實際可用的位元組更少可能是因為我們接近文件結束,或者因為我們從管道中讀取,或者從終端讀取,或者因為read()被一個信號中斷了。在錯誤中,返回-1,並適當地設置errno。

即調用read時,若所要讀取的位元組數少於文件中的個數,則返回讀取到的位元組個數;若要讀取的個數多於文件中的個數,這不算錯誤,也返回的是讀取到的位元組數;若文件為空了,所返回的值即為0;若讀取失敗,則返回-1。

這里說的文件位置被這個數字增加的意思是你讀取一位,指向位元組的文件的游標往後移動一位。



read函數實際讀到的位元組數少於要求讀的位元組數時:

讀普通文件,在讀到要求位元組數之前就到達文件尾。當從終端設備讀。

當從網路讀時,網路中的緩沖機構可能造成返回值小於所要求讀的位元組數。某些面向記錄的設備,如磁帶,一次最多返回一個記錄。讀操作完成後,文件的當前位置將從讀之前的位置加上實際讀的位元組數。當有錯誤發生時則返回 -1,錯誤代碼存入 errno中,而文件讀寫位置則無法預期。


熱點內容
androiddimens 發布:2025-03-26 01:37:00 瀏覽:471
電視出現認證伺服器無響應怎麼辦 發布:2025-03-26 01:33:21 瀏覽:685
linux安裝mysql55 發布:2025-03-26 01:31:10 瀏覽:758
如何遠程登錄家裡的伺服器 發布:2025-03-26 01:10:49 瀏覽:762
河北長城dns伺服器地址 發布:2025-03-26 01:07:05 瀏覽:837
社保的卡銀行密碼是多少 發布:2025-03-26 01:00:28 瀏覽:974
買手機如何看是正品安卓 發布:2025-03-26 00:28:25 瀏覽:363
對象沒有存儲類型 發布:2025-03-26 00:10:03 瀏覽:402
相冊編程代碼 發布:2025-03-25 23:59:07 瀏覽:741
絕地求生安卓登不進去怎麼辦 發布:2025-03-25 23:58:58 瀏覽:863