當前位置:編程學習大全網 - 編程語言 - Linux系統編程。可移植文檔格式文件的擴展名(portable document format的縮寫)

Linux系統編程。可移植文檔格式文件的擴展名(portable document format的縮寫)

* * *如何使用內存相關的API並不難:

1.首先調用shmget來分配壹個新的* * *共享內存。您可以在這裏指定它的大小。如果要分配塑料,可以將尺寸參數設置為4。如果您想要* * *共享壹個結構,請將size參數設置為您的結構的大小。操作系統不關心妳想* * *,只關心妳想分配多少字節。而且實際上操作系統會根據內存頁的大小來對齊妳所要求的大小,也就是說它實際上可能會分配幾頁物理存儲空間給妳,只要這個空間能容納妳指定的大小。它的第三個參數是關於壹些訪問權限的設置,這個參數太長了,沒法講。建議妳自己搜索壹下,或者和man壹起查幫助。簡而言之,在調用shmget之後,系統會為妳創建壹段* * *共享內存,然後返回給妳壹個shmid,就是這個* * *共享內存的logo,妳可以理解為給它壹個名字。

2.然後調用shmat將這個共享內存映射到您的進程的虛擬地址空間。這個函數的第壹個參數是名稱shmid您之前通過調用shmget創建的* * *共享內存;第二個參數是壹個指針,指向進程虛擬內存空間中的壹個地址。您可以通過傳入壹個明確的地址(如果您指定的虛擬地址空間已經被映射到其他物理內存空間,這可能會失敗),強制操作系統將* * *內存映射到您指定的虛擬內存地址,或者您可以通過傳入壹個零地址(它將通過返回值將地址返回給您)讓系統為您選擇壹個合適的地址。第三個參數允許您指定壹些特殊的標誌位。還是那句話,自己搜索太復雜,壹般應用不需要。

至於例子,可以看看下面的鏈接:

/view/3025906.htm

另外妳要知道,只使用* *共享內存並不互斥,壹定要和信號量壹起使用,防止互斥。如果妳* * *只喜歡壹個塑料變量,可能問題不大,因為讀寫與頁面對齊的塑料變量是原子操作,但如果妳* * *喜歡壹個復雜的結構,就要小心了。

  • 上一篇:總是被騙是不是自己的問題?
  • 下一篇:玄幻題材小說的虛擬地名
  • copyright 2024編程學習大全網