當前位置:首頁 » 編程語言 » 重量級監控系統c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

重量級監控系統c語言

發布時間: 2022-11-02 19:27:47

Ⅰ 智能視頻監控系統詳細設計思路

隨著寬頻有線和無線網路基礎設施的完善以及全球安防市場需求的增長,視頻監控的應用正呈爆發性的增長態勢。視頻監控系統的發展趨勢非常明顯,在經歷了數字化和網路化之後,下一個重要的趨勢就是智能化,即智能監控和視頻分析技術的應用。

傳統的視頻監控由人工進行視頻監測發現安全隱患或異常狀態,或者用於事後分析,這種應用具有其固有的缺點,難以實現實時的安全監控和檢測管理。帶有智能分析功能的監控系統可以通過區分監控對象的外形、動作等特徵,做到主動收集、分析數據,並根據預設條件執行報警、記錄、分析等動作。智能監控系統可以運行於伺服器,也可以運行在基於DSP的嵌入式系統上,而後者已逐漸成為主流。

智能視頻的應用大體上可以分安防、人體行為檢測和智能交通三方面的應用。其中安防應用是被廣泛認為是最具潛力的市場,它包括以下幾個應用類別:入侵檢測,可以自動檢測出視頻畫面中的運動行為特徵;物品移除檢測,可以自動檢測物品搬移事件——當防區內某特定位置的物品被拿走或搬走時發出報警;遺留物檢測,可以對遺棄物進行自動檢測——當物品在某個防區內被放置或遺棄的時候自動報警;智能跟蹤,可以使攝像機對自身的雲台和變焦鏡頭進行自主PTZ驅動。人體行為檢測應用包括脫崗檢測(可以實現自動檢測崗哨人員就位情況)、徘徊檢測(對重要區域人體徘徊檢測)。智能交通應用包括:對非法停留的交通工具進行檢測,當交通工具在防區內非法停留時發出報警;車輛逆行檢測,及時辨別逆行車輛。

隨著准確率和可靠性逐步提高及產品成本的下降,智能視頻在越來越多的場合得到了應用,它能夠替代部分安防設備,降低安保人員的工作強度,提高工作效率,減少管理成本。事實上,智能視頻的應用具有非常巨大的潛力。隨著技術日趨成熟,智能視頻技術的應用領域正在迅速擴展,這些應用主要包括上述的安防、交通以及零售、服務等行業,如人數統計、人臉識別、人群控制、注意力控制和交通流量控制等。

實時視頻監測的需求正在快速增長,特別是隨著實時安全監控應用的需求增加,實時發現安全隱患或目標異常行為的功能已經具有越來越重要的現實意義,智能視頻監測系統產品在這種日益增長的需求帶動下,正在成為視頻監控應用的新熱點。特別是隨著半導體技術的進步,例如以Blackfin匯聚式處理器為代表的先進嵌入式解決平台方案的推出,具有極高性價比和極高實用性的智能視頻分析設備不斷推出,並在一些關鍵應用中發揮極為重要的作用。 圖1:傳統的視頻監控應用示意圖。

智能視頻應用設計攻略

硬體平台方案的選擇往往決定了系統的整體方案成本、性能、開發工具和方法的可用性,以及方案未來持續升級的可行性等,因此方案平台選型至關重要。智能視頻應用自身的獨特性要求在硬體平台的選擇上進行綜合權衡。視頻監控系統的網路化和智能分析要求,以及大規模工程安裝對成本、體積和功耗的限制,非標准化的智能視頻分析方法和幾乎定製化的方案優化方式,使得結合了MCU和DSP優勢、具有軟體設計靈活性和強大處理能力的匯聚式處理器方案平台體現出更加明顯的優勢。本文將結合ADI公司獨特的Blackfin匯聚式DSP處理器的特點,分析智能視頻設計中主要的設計技術要點。

一、硬體平台選型

可定製化能力非常重要。有很多因素制約著視頻監控系統智能化的應用步伐:首先是智能監控的視頻演算法比較復雜,難於標准化,各個系統提供商的視頻分析軟體都有自己的獨特演算法,導致市場上的產品沒有統一的標准;其次,視頻監控系統的應用場景比較復雜,用戶的要求多樣化,所以定製化的要求比較多。因此,視頻分析方案通常需要針對客戶的應用特點和需求進行方案優化,採用的演算法千差萬別。此外,由於智能視頻應用的高復雜性,對方案的處理能力提出了更高的要求。MCU+ASIC的視頻監控傳統方案難以實現各種個性化的設計和高運算能力要求,即使選擇普通DSP+MCU的雙晶元方案通常也難以滿足智能視頻監控應用的復雜運算需求,需要增加協處理器,這種復雜的解決方案無論是BOM成本、功耗還是開發難度都不足取。Blackfin處理器充分發揮了MCU+DSP匯聚式架構的優勢,滿足了智能視頻應用的系統控制和高強度的運算需求,特別是以BF561為代表的高性能雙內核架構已經成為智能視頻應用的首選方案平台。

方案的可擴展性也是需要考慮的因素。智能視頻分析應用除了需要針對應用環境、應用目的進行方案優化外,不同的客戶可能還有其他方面的不同需求。例如,當前一些領先的數字視頻監控方案實現了H.264基本類@Level3.0和MPEG4 D1+CIF雙碼流的支持,未來可能擴展到支持H.264 D1+CIF的雙碼流。隨著智能視頻分析的更廣泛應用,如IP攝像機、無線視頻監控、智能交通系統等,不同應用都可能對各種介面功能、通信標准、用戶界面等的需求有較大的差異化,硬體平台方案對各種需求的靈活擴展性非常重要。同時,正如前文所述,智能視頻分析技術發展不過數年的時間,隨著技術的不斷成熟以及一些相關的標準的出台和改進,產品的可升級特性至關重要,既是開發者須關注的問題也是終端客戶關切的重要特性。Blackfin DSP在演算法並行處理上具有獨特優勢,特別是ADSP-BF561採用雙DSP核,能夠實現很復雜的智能視頻處理演算法。

視頻應用優化特性。一些方案盡管具有較強的處理能力和可擴展性,方案是否主要針對視頻應用進行過優化設計也值得關注,因為這直接關繫到設計工程師可用的軟硬體設計資源以及系統設計難度和可實現的性能。以Blackfin處理器為例,Blackfin為高強度、高數據率的數字和媒體處理做了專門優化:Blackfin的幾十個DMA通道和可靈活配置的Cache很好地滿足了視頻監控系統對大運算量、高數據吞吐率的要求;ADI專門開發了完全優化的音視頻編解碼器,並免費提供給大客戶;針對視頻應用Blackfin集成了很多硬體驅動,包括WiFi的驅動、音/視頻編解碼器的驅動;Blackfin的4個視頻算術運算單元和視頻象素指令集大大加速了視頻運算速度;在智能視頻分析的一些基礎運算元中,例如直方圖統計、中值運算、Sobel運算、形態學中的膨脹運算等都可以利用Blackfin的MIN、MAX指令來消除條件跳轉,節省處理器周期。不僅如此,Blackfin還支持13種非視頻數據的向量運算。適當設計數據結構,在前背景分離、閾值計算和更新等多個環節都可以運用Blackfin的特色指令讓智能視頻分析演算法更快捷。這些本身就很有效的指令中,大部分指令都能夠並行執行,使得Blackfin的處理能力再加倍。

低功耗和穩定性很重要。考慮到智能視頻監控設備通常都是一周7天,每天24小時運行的,穩定性和功耗也比較重要。在低功耗上,Blackfin處理器採用了多種節能技術:基於一種選通時鍾內核設計,可按照逐條指令來選擇性地切斷功能單元的電源;支持多種針對所需CPU動作極少期間的斷電模式;Blackfin處理器支持一種自含動態電源管理電路,藉助該電路即可對工作頻率和電壓進行獨立控制,以滿足正在執行的演算法的性能要求;大多數Blackfin處理器都提供片上內核穩壓電路,並可在低至0.8V的電壓下工作。而Blackfin獨特的匯聚式處理架構、90nm工藝等打下了其領先的低功耗處理的基礎。由於高處理能力,基於Blackfin平台的系統方案可以減少主晶元數量,豐富的功能和介面可以滿足各種外設和功能擴展需求,降低元器件數量,從而保證更高的穩定可靠性。目前在同價位DSP中Blackfin DSP的低功耗特性和穩定性是最好的。

支持哪些嵌入式操作系統。智能視頻分析通常是基於網路的應用,必須要操作系統的支持,因此選擇具有廣泛嵌入式系統支持能力的解決方案非常重要,這樣能確保未來產品在更換操作系統時不至於必須更換硬體平台,保證研發成果的持續可用性。目前可用的嵌入式操作系統眾多,各具優勢,硬體平台方案對這些操作系統的支持能力是進行方案選型的考慮要點之一。例如,Blackfin處理器可以支持目前主流的操作系統,包括uCLinux、ThreadX、Nucleus,uCOS-II等十多種嵌入式操作系統,客戶完全可以根據其自身要求選擇其熟悉的或更具成本效益的軟體架構基礎。 圖2:基於BF561的智能監控終端框圖。

二、開發工具和可用資源

智能視頻監控設備是一個復雜的系統,涉及到復雜的軟硬體設計、人機界面、通信連接等,具有較高的系統設計難度。因此,所選擇的硬體平台方案是否能提供完善的開發工具套件、必要的軟體模塊、成熟的參考設計、系統設計支持,以及是否有完整的設計生態系統等,對於是否能按期高質量地完成系統設計非常關鍵。事實上,並不是所有平台方案提供商都能提供這些支持。

以Blackfin系列處理器為例,採用Blackfin處理器的硬體平台從一般的DVR、IP攝像機、數字視頻監控到智能視頻監控,已經被全球大量的設備企業的廣泛採用。Blackfin處理器獲得眾多企業的青睞,具有完整的開發工具和參考設計等支持是其受廣泛歡迎的重要原因之一。ADI提供業界一流的工具、初學套件與支持,包括人們熟知的、能夠支持其他Blackfin處理器的ADI CROSSCORE?軟體與硬體工具,這些工具包括獲獎的VisualDSP++?集成開發與調試環境(IDDE)、模擬器,以及EZ-KIT Lite?評估版硬體。

為提高開發效率,降低開發難度,開發時應盡量在已有的資源上進行,比如開放的常式,ADI為此提供了非常豐富的常式和資料。例如,ADI提供免費的「Image Tool Box」圖像處理函數庫軟體包,該軟體包專門針對圖像處理應用常用的數學函數進行了優化,供客戶在進行應用開發時調用。ADI還提供完整的參考設計,以及由本地合作夥伴開發的評估板、開發工具、演算法IP、應用模塊,以及由第三方合作夥伴提供包括軟硬體在內的全套交鑰匙方案。Blackfin處理器的視頻監控應用目前在中國已經有多傢具有豐富工程經驗的第三方合作夥伴,已經建立完善的生態系統。

以ADI在今年三月份宣布提供基於該公司Blackfin BF526C的完整的IP監控和機器視覺攝像頭參考設計為例,該參考設計在單個匯聚處理器上提供了強大的視頻和音頻處理能力,為工程師提供了一個統一的軟體開發環境,可以實現更快的系統調試和部署,以及更低的系統成本。該處理器提供了集成的音頻編解碼器、流式視頻和IP協議、片上DRAM存儲器以及針對10/100乙太網、USB和SD存儲和本地RS-232埠的介面。這種完全可編程的解決方案可以滿足多種視頻壓縮標准,例如H.264和MPEG4,支持音頻G.729標準的編碼。支持從控制中心到相機的雙向語音通信,以及利用Pelo-P或Pelo-D協議的鏡頭平移、傾斜和拉伸動作。該參考設計還提供一塊帶雙核BF561處理器的子卡,使系統能實現更高視頻解析度,並提供實現高級視頻分析功能,如運動檢測和跟蹤。

應用方案揭秘——億維東方智能網路攝像機

北京億維東方科技有限公司(Emvideo)是專業智能安防產品的方案提供商,也是美國ADI公司授權的第三方合作夥伴。億維東方目前有多款基於ADI Blackfin處理器為核心的硬體平台的產品,其中「軟體+硬體」交鑰匙的WiFi無線視頻監控整體解決方案基於BF536+BF561的雙處理器架構,方案硬體結構圖如圖3所示。

其中BF536處理器作為主處理器,除負責完成音頻編碼、遠程式控制制以及用戶交互控制等一些基本的管理與控制外,還負責嵌入式操作系統uClinux的運行,以及先進的智能視頻分析功能,可以完成安防、人體行為、智能交通等多種智能視頻分析。雙核BF561作為協處理器負責視頻編碼演算法,其強大的視頻處理能力使得該方案實現了H.264基本類@Level3.0和MPEG4 D1+CIF雙碼流的支持,未來更將可能擴展到能夠支持H.264 D1+CIF的雙碼流。兩個處理器之間可以通過高速同步串列介面通訊,視頻信號首先進入BF561處理器,採集編碼後的碼流發送到BF536處理器,然後通過網路發送到客戶端進行解碼顯示。 圖3:採用Blackfin BF536和BF561的解決方案硬體結構圖。

該方案採用了先進的背景建模方法,能有效地克服光線變化、樹葉擺動以及水面波紋等背景對前景目標分析產生的干擾,實現准確的前景檢測,同時在目標跟蹤上採用了獨特的優化算放,實現了在入侵檢測(包括區域警戒、絆線檢測)的應用上超過90%的准確率。而所有這些都是基於BF536+BF561雙處理器的硬體架構所具有的強大處理能力來實現的。

該方案的智能視頻分析功能由億維東方公司自主開發,獨特的演算法和豐富的智能視頻分析技術開發經驗確保實現客戶的智能識別應用需求,並為客戶提供包括軟體升級在內的完善服務。由於智能視頻識別應用目前並沒有任何可循的需求標准和測試標准,因此視頻分析方案通常需要針對客戶的應用特點和需求進行方案優化。例如有些用戶是地鐵系統的,他們需要的功能是檢測是否跨越候車的黃線、人群密度是否過大、是否有可疑的遺留物體等;有些用戶是銀行系統的,他們所需要的是ATM機的智能監控如分析是否有安裝假鍵盤、安裝吞卡器,在ATM機是否有暴力行為,是否出現犯罪分子的人臉等。利用該方案,客戶可以根據用戶的需求方便地進行調整演算法。智能視頻處理要求晶元具有強大的處理能力,有許多演算法實現時得採用並行處理,Blackfin DSP在演算法並行處理上具有獨特的優勢,特別是ADSP-BF561的雙DSP核能夠實現很復雜的智能視頻處理演算法。這是傳統的MCU+ASIC或採用一般DSP方案所難以實現的。

該方案的軟硬體都經過了應用驗證,目前已經由多家客戶進行生產,目標應用將主要是政府行政效能監測、教育系統等行業用戶。

Ⅱ 如何在Linux下用c語言創建守護進程並監控系統運行期間的所有進程

可以分三步來做:
做兩個簡單的守護進程,並能正常運行
監控進程是否在運行
啟動進程
綜合起來就可以了,代碼如下:
被監控進程thisisatest.c
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>

void init_daemon()

Ⅲ 什麼是c語言c語言涉及哪些方面

C語言是一種編程語言,是一種高級語言,但實際上
並不「高級」,只是相對低級語言在一個高的級別上進行編程
,c語言
歷史悠久,戰勛卓著
誕生於20世紀70年代初,成熟於80年代
很多重量級軟體都是用C語言寫的
上天入地,無所不能
幾乎沒有不能用C語言實現的軟體,沒有不支持C語言的系統
很多流行語言、新生語言都借鑒了它的思想、語法
從C++,到Java,再到C#.
使用c語言大概只限於下面四大領域:1,編寫操作系統和基礎工具
。2,對運行效率要求較高的系統
設備驅動程序,高性能、實時中間件,嵌入式領域,並發程序設計等
。3,繼承和維護已有的C代碼。4
交流、筆試、面試時最常見的語言

Ⅳ 什麼叫C語言

C語言是目前世界上流行、使用最廣泛的高級程序設計語言。

C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。

C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。

常用的編譯軟體有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......

C語言的發展歷史

C語言的發展頗為有趣。它的原型ALGOL 60語言。

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。

而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。

為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。

1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。

C語言的特點

1. 簡潔緊湊、靈活方便

C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。

2. 運算符豐富

C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

3. 數據結構豐富

C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

4. C是結構式語言

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

5. C語法限制不太嚴格、程序設計自由度大

一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。

6. C語言允許直接訪問物理地址,可以直接對硬體進行操作

因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。

7. C語言程序生成代碼質量高,程序執行效率高

一般只比匯編程序生成的目標代碼效率低10へ20%。

8. C語言適用范圍大,可移植性好

C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。

Ⅳ c語言編程,一個應用程序如何判斷另外一個被監控的應用程序的存活與否若用心跳實現,如何設置心跳機制

APP-2每1分鍾發一個心跳包給APP-1。APP-1如果超過1分鍾沒收到,可以累計記錄x++,收到心跳包x清零。當x=2時,可以發送一個ack包給APP-2,如果APP-2還是沒有回應,即x=3時,可以確定APP-2down掉。x在1~3直接時是網路阻塞。具體操作時間還需要自行確定。

Ⅵ 如何在linux系統上用c語言編寫圖形化監控系統

有基於Qt的和基於GTK+兩種API的 ,Qt是c++,GTK+是c

Ⅶ 如何在Linux下用c語言創建守護進程並監控系統運行期間的所有進程

可以分三步來做:


  1. 做兩個簡單的守護進程,並能正常運行

  2. 監控進程是否在運行

  3. 啟動進程


綜合起來就可以了,代碼如下:
被監控進程thisisatest.c(來自):
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //創建錯誤,退出
else if(pid>0) //父進程退出
exit(0);

setsid(); //使子進程成為組長
pid=fork();
if(pid>0)
exit(0); //再次退出,使進程不是組長,這樣進程就不會打開控制終端
else if(pid<0)
exit(1);


//關閉進程打開的文件句柄
for(i=0;i<NOFILE;i++)
close(i);
chdir("/root/test"); //改變目錄
umask(0);//重設文件創建的掩碼
return;
}


void main()
{
FILE *fp;
time_t t;
init_daemon();
while(1)
{
sleep(60); //等待一分鍾再寫入
fp=fopen("testfork2.log","a");
if(fp>=0)
{
time(&t);
fprintf(fp,"current time is:%s ",asctime(localtime(&t))); //轉換為本地時間輸出
fclose(fp);
}
}
return;
}


監控進程monitor.c:
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


#include<sys/wait.h>
#include<fcntl.h>
#include<limits.h>


#define BUFSZ 150


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //創建錯誤,退出
else if(pid>0) //父進程退出
exit(0);


setsid(); //使子進程成為組長
pid=fork();
if(pid>0)
exit(0); //再次退出,使進程不是組長,這樣進程就不會打開控制終端
else if(pid<0)
exit(1);


//關閉進程打開的文件句柄
for(i=0;i<NOFILE;i++)
close(i);
chdir("/root/test"); //改變目錄
umask(0);//重設文件創建的掩碼
return;
}


void err_quit(char *msg)
{
perror(msg);
exit(EXIT_FAILURE);
}


// 判斷程序是否在運行
int does_service_work()
{
FILE* fp;
int count;
char buf[BUFSZ];
char command[150];
sprintf(command, "ps -ef | grep thisisatest | grep -v grep | wc -l" );


if((fp = popen(command,"r")) == NULL)
err_quit("popen");


if( (fgets(buf,BUFSZ,fp))!= NULL )
{
count = atoi(buf);
}
pclose(fp);
return count;
// exit(EXIT_SUCCESS);
}




void main()
{
FILE *fp;
time_t t;
int count;
init_daemon();
while(1)
{
sleep(10); //等待一分鍾再寫入
fp=fopen("testfork3.log","a");
if(fp>=0)
{
count = does_service_work();
time(&t);
if(count>0)
fprintf(fp,"current time is:%s and the process exists, the count is %d ",asctime(localtime(&t)), count); //轉換為本地時間輸出
else
{
fprintf(fp,"current time is:%s and the process does not exist, restart it! ",asctime(localtime(&t))); //轉換為本地時間輸出
system("/home/user/daemon/thisisatest"); //啟動服務
}


fclose(fp);
}
}
return;
}


具體CMD命令:


cc thisisatest.c -o thisisatest
./thisisatest
cc monitor.c -o monitor
./monitor


tail -f testfork3.log -- 查看日誌

Ⅷ 如何在Linux下用c語言創建守護進程並監控系統運行期間的所有進程

這跟execvp函數的實現方式有關:
int execvp(const char *file ,char * const argv []);

execvp()會從PATH 環境變數所指的目錄中查找符合參數file的文件名,找到後便執行該文件,然後將第二個參數argv傳給該欲執行的文件。如果執行成功則函數不會返回,執行失敗則直接返回-1,失敗原因存於errno中。

之所以顯示「fail to exec」,是因為在PATH環境變數所指的目錄中沒有名為「hello」的程序。建議進行如下操作:
1、運行「echo $PATH」,查看一下PATH環境變數指向那些目錄
2、編寫一個輸出「hello world」的程序,並命名為hello,即執行命令:
gcc -o hello hello.c
3、把名為」hello「的程序拷貝到PATH變數所指的其中一個目錄中

Ⅸ linux下怎樣用c語言做實時監控目錄中文件數量變化的程序

有一個頭文件叫inotify.h ,這是linux 內核中的一個特性,可以用來監控目錄

Ⅹ 如何用C語言監視一文件,(可以隔一定時間檢測該文件),當文件相比較上一時間有改動時,讀出改動處

、「網路監視器」的基本使用

欲打開「網路監視器」,只需依次選擇「開始→程序→附件→系統工具→網路監視器」即可進入其主窗口。
對於「網路監視器」中的功能,既可以選擇菜單中的相應項目,也可以通過直接單擊工具欄上的相應按鈕來實現。在其主窗口工具欄上的按鈕,從左到右作用依次為:
1.選擇伺服器:通過它可對其他計算機的「網路監視器」進行遠程管理。具體的使用方法請參見後文相關內容。
2.斷開用戶連接:通過它可強行中斷列表中指定用戶對本機的連接。
3.關閉文件:通過它可強行關閉列表中指定用戶所打開的指定共享文件。
4.添加共享:通過它可根據提示直接添加本機的共享資源,並為它設置相應許可權。
5.停止共享:通過它可停止列表中指定資源的共享。
6.顯示用戶:這相當於選「查看」菜單中的「按連接」項,它是「網路監視器」主窗口的默認狀態,也是最常用的窗口。此處可以查看到已連接到本機的客戶機的用戶名、計算機名、打開了些什麼共享資源、打開些什麼文件以及連接的時間和空閑的時間等資料。當客戶機斷開連接之後它就會自動從此列表中消失。
7.顯示共享的文件夾:這相當於選「查看」菜單中的「按共享的文件夾」項。它可以查看本機已共享的資源及其共享名和許可權;可添加共享,停止共享,修改共享等。
8、顯示文件:這相關於選「查看」菜單中的「按打開的文件」項。它可以查看已打開的本伺服器文件;可關閉文件等。

三、「網路監視器」的遠程監視

本文上面部分已經講過「網路監視器」在本地計算機上的基本使用方法,但實際上在一定條件滿足的情況下,它也可以對區域網內的其他計算機進行完全相同的遠程管理。請進行如下的操作:
1.啟用遠程管理
在遠程計算機上,先進入其「控制面板→密碼→遠程管理」窗口,再勾選中「啟用此伺服器的遠程管理」,接著在相應位置輸入密碼後按「確定」按鈕保存退出。
2.使用遠程管理
在本地計算機上,先進入「網路監視器」的主窗口,再選「管理員」菜單中的「選擇伺服器」項,在「請輸入要進行管理的伺服器名」的提示窗口中的「名稱」處輸入遠程計算機的名字(比如為zhuyan),然後按「確定」按鈕繼續;系統接著會提示「必須提供密碼才能連接」,則請在「密碼」後輸入「啟用遠程管理」一步中所設的密碼值,最後按「確定」按鈕即可得到新的「網路監視器」的窗口,裡面當然是遠程計算機的共享內容了,你所要做的,就是進行正常操作就可以啦!

注意:
1.如果在「使用遠程管理」操作中,當進行到輸入密碼一步勾選中了「請將密碼保存到密碼列表」項,則當你以後再連接到遠程計算機時就不用輸入密碼了。
2.如果要想修改共享文件夾名或其許可權設置,則需要在「顯示共享的文件夾」窗口中,先在列表中選中該用戶,然後按鍵盤上的ALT+ENTER鍵(或者選「管理員」菜單中的「共享文件夾的屬性」項),再根據提示進行操作即可。