『壹』 大神們 求助 現在是 gcc--version看到的是 5.3 但是 cat /procversion 是5.4 用的還是5.4 該怎麼用5.3
/proc/version 文件是編譯內核時候的GCC版本。如果內核不是你編譯安裝的,那麼你是改動不了該文件的(除非改動二進制)。
gcc --version 就是你現在優先使用的gcc 版本,在你所使用的當前用戶下如此。
『貳』 編譯proc 出現這樣的錯誤是什麼原因
雖然我沒有看到你的具體的程序源代碼,但是根據我多年編寫程序源代碼的經驗,可以給你提供如下一些信息,供你參考。關於編程過程中出現的錯誤類型有很多種,其中最容易調試的程序錯誤是:
(1)、在編寫源程序過程中出現的各種語法錯誤。這種錯誤主要是由於剛剛開始學習編程,對編程語言的語句、以及語法結構還不是很清晰造成的,這種錯誤是最容易進行調試的,因為語法錯誤,編譯器連編譯都無法通過(通常會顯示出來具體是哪一行出現錯誤),這樣的話,你就可以直接到出錯的那一行進行修改源代碼了;
(2)、若是經過一段時間的上機練習,對初始編程已經較為熟練了、且語法錯誤較少了之後,之後就會遇到更為復雜、並且難於調試的語義錯誤。例如在 C 語言中,對於如下代碼:
void main( )
{
int n ;
scanf("%d", &n) ;
if( n == 100 )
printf(" n is 100 !\n") ;
else
printf(" n is not 100 !\n") ;
}
在邏輯判斷語句:if( n == 100) 中,如果誤將「==」(邏輯等於)寫成了「=」(賦值等於),那麼在 scanf("%d", &n) 語句中,無論你輸入的 n 等於多少,一旦執行 if 語句,那麼 將 100 這個數字賦給變數 n,則該邏輯表達式的值總是 1,程序的運行結果必定總是輸出:n is 100。
而該程序的實際思路是:從鍵盤輸入一個整數,如果該整數等於 100,則輸出:n is 100 !如果輸入的整數不等於 100 的話,則輸出:n is not 100 !
像這樣的邏輯錯誤(在編譯源程序時,C 語言編譯器是檢查不出來的),如果沒有豐富的程序調試經驗,程序調試起來就是非常困難的。
所以說,如果想學習編程,必須要勤於上機編輯、調試、運行程序,而不能夠只是在書本上閱讀程序。只有這樣,才能夠在較短的時間內,使自己的編程水平有一個較大的提高。
『叄』 linux進不去系統顯示版本號
1、輸入"uname-a",可以查看電腦以及操作系統的相關信息。2、輸入"cat/proc/version",可以查看正在運行的內核版本。3、輸入"cat/etc/issue",可以查看發行版本信息。4.lsb_release-a(適用於所有的linux,包括Redhat、SuSE、Debian等發行版,但是在debian下要安裝lsb)。
Linux操作系統是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991年的[Linux桌面]10月5日(這是第一次正式向外公布的時間)。
『肆』 oracle的proc.exe我安裝目錄里是有的,但是proc命令不被識別,傳說貌似要設置環境變數。在哪裡設置
我的電腦-》屬性-》高級-》環境變數
『伍』 易語言枚舉進程編譯後無法顯示
基本思路:
1. 用Process32First+Process32Next枚舉所有進程。
2. 對枚舉的進程取程序名,比較是不是要關掉的程序。
3. 如是,調用TerminateProcess()結束它。
有的程序一啟動就不止一個進程,所以即使關掉一個,也繼續枚舉。
用法例:kp iexplore.exe 關閉IE進程(所有IE瀏覽器的窗口都關掉)
/********************************************
文件名:kp.c
程序名:kp.exe
用法例:kp iexplore.exe
********************************************/
#include <windows.h>
#include <tlhelp32.h>
int KillMyProcess(char *exeName)
{
int rc = 0;
HANDLE hSysSnapshot = NULL;
PROCESSENTRY32 proc;
hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
if ( hSysSnapshot == (HANDLE)-1 ) return 1;
proc.dwSize = sizeof(proc);
if ( Process32First ( hSysSnapshot, &proc ) ) {
do {
if (stricmp(proc.szExeFile, exeName)==0) {
HANDLE Proc_handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc.th32ProcessID);
if (Proc_handle==NULL || !TerminateProcess(Proc_handle, 0)) rc = 1;
else rc = 0;
}
} while ( Process32Next ( hSysSnapshot, &proc ) );
}
CloseHandle ( hSysSnapshot );
return rc;
}
int main(int argc, char *argv[])
{
if (argc>1) {
printf("Kill %s....\n", argv[1]);
if (KillMyProcess(argv[1])==0) printf(" --- Process is killed.\n");
else printf(" --- Process is not killed \n" ) ;
}
return 0;
}
『陸』 proc編譯問題
你調用sqlcode的時候寫錯了
應該是如下的:
if (sqlca.sqlcode == 1403)
注意是sqlca.sqlcode 而不是sql.sqlcode
『柒』 /proc文件系統的作用
理解 Proc 文件系統
--------------------------------------------------------------------------------
作者:王旭 翻譯 2004-10-05 18:25:55 來自:linuxfocus
目錄:
/proc --- 一個虛擬文件系統
載入 proc 文件系統
察看 /proc 的文件
得到有用的系統/內核信息
有關運行中的進程的信息
通過 /proc 與內核交互
結論
參考文獻
摘要:
Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。盡管在各種硬體平台上的 Linux 系統的 /proc 文件系統的基本概念都是相同的,但本文只討論基於 intel x86 架構的 Linux /proc 文件系統。
_________________ _________________ _________________
/proc --- 一個虛擬文件系統
/proc 文件系統是一種內核和內核模塊用來向進程 (process) 發送信息的機制 (所以叫做 /proc)。這個偽文件系統讓你可以和內核內部數據結構進行交互,獲取 有關進程的有用信息,在運行中 (on the fly) 改變設置 (通過改變內核參數)。 與其他文件系統不同,/proc 存在於內存之中而不是硬碟上。如果你察看文件 /proc/mounts (和 mount 命令一樣列出所有已經載入的文件系統),你會看到其中 一行是這樣的:
grep proc /proc/mounts
/proc /proc proc rw 0 0
/proc 由內核控制,沒有承載 /proc 的設備。因為 /proc 主要存放由內核控制的狀態信息,所以大部分這些信息的邏輯位置位於內核控制的內存。對 /proc 進行一次 'ls -l' 可以看到大部分文件都是 0 位元組大的;不過察看這些文件的時候,確實可以看到一些信息。這怎麼可能?這是因為 /proc 文件系統和其他常規的文件系統一樣把自己注冊到虛擬文件系統層 (VFS) 了。然而,直到當 VFS 調用它,請求文件、目錄的 i-node 的時候,/proc 文件系統才根據內核中的信息建立相應的文件和目錄。
載入 proc 文件系統
如果系統中還沒有載入 proc 文件系統,可以通過如下命令載入 proc 文件系統:
mount -t proc proc /proc
上述命令將成功載入你的 proc 文件系統。更多細節請閱讀 mount 命令的 man page。
察看 /proc 的文件
/proc 的文件可以用於訪問有關內核的狀態、計算機的屬性、正在運行的進程的狀態等信息。大部分 /proc 中的文件和目錄提供系統物理環境最新的信息。盡管 /proc 中的文件是虛擬的,但它們仍可以使用任何文件編輯器或像'more', 'less'或 'cat'這樣的程序來查看。當編輯程序試圖打開一個虛擬文件時,這個文件就通過內核中的信息被憑空地 (on the fly) 創建了。這是一些我從我的系統中得到的一些有趣結果:
$ ls -l /proc/cpuinfo
-r--r--r-- 1 root root 0 Dec 25 11:01 /proc/cpuinfo
$ file /proc/cpuinfo
/proc/cpuinfo: empty
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 6
cpu MHz : 1000.119
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips : 1998.85
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 6
cpu MHz : 1000.119
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips : 1992.29
這是一個從雙 CPU 的系統中得到的結果,上述大部分的信息十分清楚地給出了這個系統的有用的硬體信息。有些 /proc 的文件是經過編碼的,不同的工具可以被用來解釋這些編碼過的信息並輸出成可讀的形式。這樣的工具包括:'top', 'ps', 'apm' 等。
得到有用的系統/內核信息
proc 文件系統可以被用於收集有用的關於系統和運行中的內核的信息。下面是一些重要的文件:
/proc/cpuinfo - CPU 的信息 (型號, 家族, 緩存大小等)
/proc/meminfo - 物理內存、交換空間等的信息
/proc/mounts - 已載入的文件系統的列表
/proc/devices - 可用設備的列表
/proc/filesystems - 被支持的文件系統
/proc/moles - 已載入的模塊
/proc/version - 內核版本
/proc/cmdline - 系統啟動時輸入的內核命令行參數
proc 中的文件遠不止上面列出的這么多。想要進一步了解的讀者可以對 /proc 的每一個文件都'more'一下或讀參考文獻[1]獲取更多的有關 /proc 目錄中的文件的信息。我建議使用'more'而不是'cat',除非你知道這個文件很小,因為有些文件 (比如 kcore) 可能會非常長。
有關運行中的進程的信息
/proc 文件系統可以用於獲取運行中的進程的信息。在 /proc 中有一些編號的子目錄。每個編號的目錄對應一個進程 id (PID)。這樣,每一個運行中的進程 /proc 中都有一個用它的 PID 命名的目錄。這些子目錄中包含可以提供有關進程的狀態和環境的重要細節信息的文件。讓我們試著查找一個運行中的進程。
$ ps -aef | grep mozilla
root 32558 32425 8 22:53 pts/1 00:01:23 /usr/bin/mozilla
上述命令顯示有一個正在運行的 mozilla 進程的 PID 是 32558。相對應的,/proc 中應該有一個名叫 32558 的目錄
$ ls -l /proc/32558
total 0
-r--r--r-- 1 root root 0 Dec 25 22:59 cmdline
-r--r--r-- 1 root root 0 Dec 25 22:59 cpu
lrwxrwxrwx 1 root root 0 Dec 25 22:59 cwd -> /proc/
-r-------- 1 root root 0 Dec 25 22:59 environ
lrwxrwxrwx 1 root root 0 Dec 25 22:59 exe -> /usr/bin/mozilla*
dr-x------ 2 root root 0 Dec 25 22:59 fd/
-r--r--r-- 1 root root 0 Dec 25 22:59 maps
-rw------- 1 root root 0 Dec 25 22:59 mem
-r--r--r-- 1 root root 0 Dec 25 22:59 mounts
lrwxrwxrwx 1 root root 0 Dec 25 22:59 root -> //
-r--r--r-- 1 root root 0 Dec 25 22:59 stat
-r--r--r-- 1 root root 0 Dec 25 22:59 statm
-r--r--r-- 1 root root 0 Dec 25 22:59 status
文件 "cmdline" 包含啟動進程時調用的命令行。"envir" 進程的環境變兩。 "status" 是進程的狀態信息,包括啟動進程的用戶的用戶ID (UID) 和組ID(GID) ,父進程ID (PPID),還有進程當前的狀態,比如"Sleelping"和"Running"。每個進程的目錄都有幾個符號鏈接,"cwd"是指向進程當前工作目錄的符號鏈接,"exe"指向運行的進程的可執行程序,"root"指向被這個進程看作是根目錄的目錄 (通常是"/")。目錄"fd"包含指向進程使用的文件描述符的鏈接。 "cpu"僅在運行 SMP 內核時出現,裡面是按 CPU 劃分的進程時間。
/proc/self 是一個有趣的子目錄,它使得程序可以方便地使用 /proc 查找本進程地信息。/proc/self 是一個鏈接到 /proc 中訪問 /proc 的進程所對應的 PID 的目錄的符號鏈接。
通過 /proc 與內核交互
上面討論的大部分 /proc 的文件是只讀的。而實際上 /proc 文件系統通過 /proc 中可讀寫的文件提供了對內核的交互機制。寫這些文件可以改變內核的狀態,因而要慎重改動這些文件。/proc/sys 目錄存放所有可讀寫的文件的目錄,可以被用於改變內核行為。
/proc/sys/kernel - 這個目錄包含反通用內核行為的信息。 /proc/sys/kernel/{domainname, hostname} 存放著機器/網路的域名和主機名。這些文件可以用於修改這些名字。
$ hostname
machinename.domainname.com
$ cat /proc/sys/kernel/domainname
domainname.com
$ cat /proc/sys/kernel/hostname
machinename
$ echo "new-machinename" > /proc/sys/kernel/hostname
$ hostname
new-machinename.domainname.com
這樣,通過修改 /proc 文件系統中的文件,我們可以修改主機名。很多其他可配置的文件存在於 /proc/sys/kernel/。這里不可能列出所有這些文件,讀者可以自己去這個目錄查看以得到更多細節信息。
另一個可配置的目錄是 /proc/sys/net。這個目錄中的文件可以用於修改機器/網路的網路屬性。比如,簡單修改一個文件,你可以在網路上癮藏匿的計算機。
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
這將在網路上癮藏你的機器,因為它不響應 icmp_echo。主機將不會響應其他主機發出的 ping 查詢。
$ ping machinename.domainname.com
no answer from machinename.domainname.com
要改回預設設置,只要
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/proc/sys 下還有許多其它可以用於改變內核屬性。讀者可以通過參考文獻 [1], [2] 獲取更多信息。
結論
/proc 文件系統提供了一個基於文件的 Linux 內部介面。它可以用於確定系統的各種不同設備和進程的狀態。對他們進行配置。因而,理解和應用有關這個文件系統的知識是理解你的 Linux 系統的關鍵。
參考文獻
[1] 有關Linux proc 文件系統的文檔位於: /usr/src/linux/Documentation/filesystems/proc.txt
[2] RedHat Guide: The /proc File System: http://www.redhat.com/docs/manuals/linux/RHL-7.3-Manual/ref-guide/ch-proc.html
『捌』 PROC編譯
可以把問題描述清楚一點,這樣才能更快獲得幫助。
使用proc來轉換源文件的命令通常是:
proc parse=full USERID=user/pwd@dns SQLCHECK=SEMANTICS yourfile.pc include="/oracle/app/oracle/proct/9.2.0/precomp/public"
其中,parse=full一般是固定的,
USERID後面跟上連接到oracle資料庫的連接字元串,格式為:用戶/密碼@伺服器名
SQLCHECK=SEMANTICS 指明SQLCHECK參數,一般也是固定的
include=&quo肌埂冠忌攉渙圭惟氦隸t;/oracle/app/oracle/proct/9.2.0/precomp/public"指明預編譯時候需要的頭文件路徑
其中/oracle/app/oracle/proct/9.2.0是你的oracle數字路徑,後面的precomp/public是固定的
yourfile.pc 你想要轉換的使用嵌入式SQL編寫好的源文件。
執行之後,如果沒錯,就會生成.c源文件,編譯就可以了。
如果執行出錯,會生成*.lis文件,指出出錯的地方,按照錯誤說明修改之後再試。
需要注意相關環境變數要配置正確,.pc源文件里所用到的表,欄位,存儲過程等在資料庫中要存在,並且,連接上去的用戶要有相關表的訪問許可權。
『玖』 vc++6.0編譯時出現'proc' 不是內部或外部命令,也不是可運行的程序 或批處理文件。
如果你的Oracle在vc之後安裝的 則需要配置路徑。要把proc這個可執行文件包含到路徑中
具體的方法是 在工具下面找選項,在選項的頁面下 選擇可執行文件 這一項。然後將Oracle中proc文件的路徑 添加進去。這里說的不夠具體。你可以繼續查怎麼配置
雖然這個問題已經過去了很久。但希望給以後看的人一點啟示。