x32 (7)


如何確定給定的Linux是32位還是64位?

如何確定給定的Linux是32位還是64位?

當我鍵入uname-a,它會提供以下輸出。 Linux mars 2.6.9-67.0.15.ELsmp#1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux 我怎麼知道給定的操作系統是32位還是64位? 編寫configure腳本時這很有用,例如:我在為什麼構建?…


Visual C++ 2008:如何在解決方案中定義全局設置

我有許多解決方案,其中有大量的項目。 我希望能夠為所有項目使用的解決方案定義全局設置。 例如一個包含目錄。 我希望能夠將解決方案中的所有項目都包含在一個地方。 當我搜索解決方案時,我發現了與我的完全匹配的問題的一個很好的描述,但在那裡提出的解決方案,項目屬性表,是每個項目而不是每個解決方案。 我可以使用環境變量或Visual Studio設置,但是每個需要編譯代碼的人都必須定義完全相同的設置…



linux kernel - 用MADV_SEQUENTIAL調用madvise系統調用需要很長時間才能完成

在我的代碼中,我使用了一個外部的C庫,而且這個庫調用了MADV_SEQUENTIAL選項,這個選項需要很長時間才能完成。 在我看來,只有用MADV_SEQUENTIAL調用madvise對我們的工作來說已經足夠了。 我的第一個問題是,為什麼要進行多個瘋狂的系統調用,有沒有按順序調用不同選項的邏輯? 我的第二個問題是,你有什麼想法,為什麼madvise與MADV_SEQUENTIAL需要太長,有時…


如何在二進制執行期間掛接所有的linux系統調用

我正在嘗試修改Linux系統調用的默認行為。 目前,我正在試圖掛鉤並添加一個簡單的打印語句之前,他們實際上被調用。 我知道GCC鏈接器的標準“換行”選項,以及如何將其用於鉤子封裝鏈接到GCC鏈接器選項 。 這完全適用於open(),fstat(),fwrite()等(其中我實際上掛鉤libc包裝)。 更新: 限制是,並不是所有的系統調用都被這種方法所吸引。 為了說明,讓我們來看一個簡單的靜態…


linux - 內存訪問錯誤sys_rt_sigaction(信號處理程序)

在這個接口Linux信號文章之後,我一直試圖在amd64中使用sys_rt_sigaction,但是在發送信號的時候總是得到內存訪問錯誤 。 當使用C/C++函數sigaction時, struct sigaction起作用。 sys_rt_sigaction調用有什麼錯誤? 帶有ASM代碼的C/C++:#include<signal.h>#include<stdio.h>…


.net - Visual Studio“Any CPU”目標是什麼意思?

我有一些與Visual Studio 2008中的.NET平台構建選項有關的混淆。 什麼是“任何CPU”編譯目標,它會生成什麼樣的文件? 我檢查了這個“任何CPU”構建的輸出可執行文件,並發現它們是x86可執行文件(誰不會看到它!)。 那麼,將可執行文件定位到x86與“任何CPU”之間有什麼區別? 我注意到的另一件事是託管的C++項目沒有這個平台作為選項。 這是為什麼? 這是否意味著我懷疑…


為什麼x86-64 Linux系統調用會修改RCX,這個值意味著什麼?

我正在嘗試使用 sys_brk syscall在linux中分配一些內存。 這是我嘗試過的: BYTES_TO_ALLOCATE equ 0x08 section.text global_start_start: mov rax, 12 mov rdi, BYTES_TO_ALLOCATE syscall mov rax, 60 syscall 根據linux調用約定,我希望返回值在 rax 寄存…




x86 x64 system syscall call linux visual table studio linux系統呼叫