linux中程式設計可以使用兩種方式:
1.系統呼叫建立
int
creat
(const
char
*filename,mode_t mode)
filename:要建立的檔名(包含路徑,預設為當前路徑)
mode:建立模式
mode常見模式:
int creat(const char *filename,mode_t mode)
yourexe.exe yourfile
argc 2
ar**[0] 指向 "yourexe.exe"
ar**[1] 指向 "yourfile"
2.檔案的描述
本質上是乙個非負的整數,
3.系統呼叫 -開啟
int
open
(const
char
*pathname,
int flags)
intopen
(const
char
*pathname,
int flags,mode_t mode)
//pathname:要開啟的檔名
//flags:開啟標誌
常見的開啟標誌
#include
#include
#include
#include
#include
#include
// for close
intmain
(int argc,
char
*ar**)
if((fd=
open
(ar**[1]
,o_creat|o_rdwr,
0775))
<0)
else
close
(fd)
;exit(0
);}~
[編譯錯誤:implicit declaration of function 『close』]
新增 #include 標頭檔案
4.系統呼叫 -關閉
int
close
(int fd)
;
5.系統呼叫 -讀int
read
(int fd ,
const
void
*buf,size_t length)
從檔案描述符fd所指定的檔案中讀取lenth個位元組到buf所指向的緩衝區中,返回值為實際的位元組數
6.系統呼叫 -寫
int
write
(int fd ,
const
void
*buf,size_t length)
把length個位元組從buf指向的緩衝區中寫到檔案描述符fd所指向的檔案中,返回實際寫入的值
7.系統呼叫 移動指標
int
lseek
(int fd ,offset_t offset,int whence)
fd:操作的檔案
offset:移動多少距離(例如:-4)
whence:從什麼地方開始移動指標
返回值:檔案指標相對於檔案尾的位置
whence可使用下述值:
計算檔案的長度:
lseek
(fd ,0,
seek_end
);
7.系統呼叫 訪問判斷int
access
(const
char
*pathname,
int mode)
pathname:檔名稱
mode:要判斷的訪問許可權。可以取以下值或者是他們的組合
r_ok:檔案可讀
w_ok:檔案可寫
x_ok:檔案可執行
f_ok:檔案存在
返回值:正確:0,不正確-1
對檔案進行建立
#include
#include
#include
// for close
#include
#include
#include
#include
#define buffer_size 1024
intmain
(int argc,
char
**ar**)if(
(from_fd=
open
(ar**[1]
,o_rdonly))==
-1)if
((to_fd=
open
(ar**[2]
,o_wronly|o_creat,s_irusr|s_iwusr))==
-1)while
(bytes_read=
read
(from_fd,buffer,buffer_size))}
if(bytes_write==-1
)break;}
}close
(from_fd)
;close
(to_fd)
;exit(0);}
執行結果:
時間獲取
#include
time_t time
(time_t *tloc)
null
功能,獲取日曆時間,即從2023年1月1日零點到所在所經歷的秒數
#include
intgettimeofday
(struct timeval *tv,
struct timezone *tz)
功能:獲取從今日凌晨到現在的時間差,用於計算事件耗時
時間顯示char
*asctime
(const
struct tm *tm)
功能:將tm格式的時間轉化成字串,如:sat jul 30 08:
char
*ctime
(const time_t *timep)
功能:將日曆時間轉化為本地時間的字串形 mini2440 解除安裝模組
我的mini2440買回來這麼久了,一直有個問題很奇怪,就是執行insmod ko一切正行,lsmod也可以看到你插入的模組,但是用rmmod就會出現no such file,一直對這個問題就感覺很奇怪,也google了很多,網上五花八門的答案都有。最後還是仔細看了手冊才找到答案,原來是要把板子上的...
mini2440儲存空間
s3c2440把低1g的空間分成了8塊,由圖可知,第0至6這七塊的起始位址是不變的。而第七段的位址是可變的 它的位址有第六塊需要用到多少來決定,反正就是第六第七是連在一起的 前6塊可以是rom sram 最後兩塊不但可以是rom,sram外,還可以是sdram.其實啊,簡單點的說,就是只有最後兩塊才...
mini2440 led測試程式
本程式用到的硬體資源 nled 1 nled 2 nled 3 nled 4 gpb5 gpb6 gpb7 gpb8 k2 l5 k7 k5 儲存器位址分配如下 sdram 0x3000,0000 0x3400,0000 特殊功能暫存器 0x4800,0000 0x6000,0000 ads1.2編...