1、請你談談共享記憶體相關的api
sys/shm.h中。 1)新建共享記憶體shmget int
shmget
(key_t key,size_t
size,
int shm***)
; key:共享記憶體鍵值,可以理解為共享記憶體的唯一性標記。
size:共享記憶體大小 shmflag:建立程序和其他程序的讀寫許可權標識。 返回值:相
應的共享記憶體識別符號,失敗返回-
12)連線共享記憶體到當前程序的位址空間shmat
void
*shmat
(int shm_id,
const
void
*shm_addr,
int shm***)
; shm_id:
由系統來選擇。 shm***:標誌位 返回值:指向共享記憶體第乙個位元組的指標,失敗
返回-1
3)當前程序分離共享記憶體shmdt int
shmdt
(const
void
*shmaddr)
;4)控制共享記憶體shmctl 和訊號量的semctl函式類似,控制共享記憶體 int
shmctl
(int shm_id,
int command,
struct shmid_ds *buf)
; shm_id:共享
記憶體識別符號 command:有三個值 ipc_stat:獲取共享記憶體的狀態,把共享記憶體的
shmid_ds結構複製到buf中。 ipc_set:設定共享記憶體的狀態,把buf複製到共享內
存的shmid_ds結構。 ipc_rmid:刪除共享記憶體 buf:共享記憶體管理結構體。
2、請你介紹一下c++智慧型指標
物件。當棧物件的生存週期結束後,會在析構函式中釋放掉申請的記憶體,從而防止內
存洩漏。c++
11中最常用的智慧型指標型別為shared_ptr,它採用引用計數的方法,
記錄當前記憶體資源被多少個智慧型指標引用。該引用計數的內存在堆上分配。當新增一
個時引用計數加1,當過期時引用計數減一。只有引用計數為0時,智慧型指標才會自動
釋放引用的記憶體資源。對shared_ptr進行初始化時不能將乙個普通指標直接賦值給
智慧型指標,因為乙個是指標,乙個是類。可以通過make_shared函式或者通過構造函
數傳入普通指標。並可以通過get函式獲得普通指標。
3、求1+2+3+…+n,要求不能使用乘除法。
class
solution
return sum;}}
;
牛客網模擬面試題目彙總
具體工作機制如下 資料庫連線池在初始化時將建立一定數量的資料庫連線放到連線池中,這些資料庫連線的數量是由最小資料庫連線數來設定的。無論這些資料庫連線是否被使用,連線池都將一直保證至少擁有這麼多的連線數量。連線池的最大資料庫連線數量限定了這個連線池能占有的最大連線數,當應用程式向連線池請求的連線數超過...
牛客網題目1 最大數
感覺做題思路還是會有一些混亂,理清思路且寫 要細心 繼續多做題!給定乙個包含大寫英文本母和數字的句子,找出這個句子所包含的最大的十六進製制整數,返回這個整數的值。資料保證該整數在int表示範圍內 class solution if left s.length return 0 windows s l...
牛客網(面試題)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...