假設乙個學生的資訊包括姓名,學號,性別,年齡,班級,籍貫六項資訊,編寫乙個簡單的學生管理系統:
源**:
#include
#include
#include
#include
#include
#include
#include
#define malloc (stu*)malloc(sizeof(stu))
static int num = 0;
typedef structstu;
//新增學生資訊
stu *stu_add(stu *p)
//查詢學生資訊
void stu_search(stu *p)
i++; }
if(i >= num)
} //刪除學生資訊
stu *stu_del(stu *p)
num--;
count = 1;
printf("找到並刪除該學生資訊\n");
break; }
}if(count != 1)
return p; }
//修改學生資訊
stu *stu_change(stu *p)
} if(i < num)else }
//顯示學生資訊
void stu_show(stu *p)
else
printf("已經顯示全部資訊\n");}
} int main(int argc,char *argv)
int fd;
stu *stu;
stu *q = malloc;
fd = open("stu.txt",o_creat|o_rdwr,00777);
if(fd == -1)
lseek(fd,20*sizeof(stu),seek_cur);
write(fd,q,sizeof(stu));
lseek(fd,0,seek_set);
stu = (stu*)mmap(null,sizeof(stu)*20,prot_read|prot_write,map_shared,fd,0);
if(stu == map_failed)
close(fd);
fd = open("num.txt",o_rdwr|o_creat,00777);
if(fd == -1)
int i = read(fd,&num,sizeof(int));
if(i <= 0)
close(fd);
char choose;
while(1)
getchar();
printf("\n");
if(choose == '0')else }
fd = open("num.txt",o_rdwr);
if(fd == -1)
write(fd,&num,sizeof(int));
close(fd);
munmap(stu,sizeof(stu)*100);
return 0; }
所用函式
1.mmap()函式
功能mmap將乙個檔案或者其它物件對映進記憶體
檔案被對映到多個頁上
如果檔案的大小不是所有頁的大小之和,最後乙個頁不被使用的空間將會清零
標頭檔案#include
函式原型
void *mmap(void *start, size_t length, int prot, int flags, int fildes, off_t off);
返回值成功執行時,返回被對映區的指標
失敗時,mmap()返回map_failed
引數說明
start:對映區的開始位址
length:對映區的長度
prot:期望的記憶體保護標誌,不能與檔案的開啟模式衝突,取值型別如下(可通過or運算合理地組合在一起)
prot_exec //頁內容可以被執行
prot_read //頁內容可以被讀取
prot_write //頁可以被寫入
prot_none //頁不可訪問
flags:控制變化如何影響對映區
map_private:對映區的寫入不會影響到原檔案
map_shared:對映區變化對檔案有效
map_fixed:使用指定的對映起始位址
linuxc 高階程式設計之檔案操作4
題目要求 1.新建檔案,設定檔案許可權遮蔽字為0 2.建立該檔案的硬鏈結檔案,列印硬鏈結檔案的inode節點號和檔案大小 3.建立該檔案的軟鏈結檔案,列印軟鏈結檔案的inode節點號和檔案大小 列印軟鏈結檔案中的內容 4.列印原始檔的inode節點號,檔案大小和鏈結數目 5.呼叫unlink對原始檔...
linux程式設計之檔案系統
linux中的檔案系統有ext2 block ext2檔案系統組織檔案時是以block為單位組織的,磁碟上一般是以扇區為單位的,乙個扇區大小為512b,block是磁碟上的一塊區域,大小一般為8個扇區,為4k。inode表 inode表就是一塊區域記錄著檔案資訊inode結點的 inode節點 in...
Linuxc高階程式設計之程序1
1.列印當前所有環境變數的值 2.新增新的環境變數newenv first 3.修改環境變數newenv的值為second 4.列印環境變數newenv的值。源 include include include extern char environ int main int argc,char ar...