導航:首頁 > 編程系統 > linuxfprintf

linuxfprintf

發布時間:2025-01-22 22:37:40

『壹』 用linux C實現當前系統時間後移24小時以後的時間(14位,精確到秒)

#include <stdio.h>
#include <time.h>

int main(void)
{
time_t tnow;

struct tm *tmnow = NULL;
struct tm *tm24h = NULL;

time(&tnow);
tmnow = localtime(&tnow);//當前時間
fprintf(stderr,"當前時間為:%d年%02d月%02d日,%02d時%02d分%02d秒\n",
tmnow->tm_year+1900,tmnow->tm_mon,tmnow->tm_mday,
tmnow->tm_hour,tmnow->tm_min,tmnow->tm_sec);

tnow += 24*60*60;
tm24h = localtime(&tnow);
fprintf(stderr,"24H後時間為:%d年%02d月%02d日,%02d時%02d分%02d秒\n",
tm24h->tm_year+1900,tm24h->tm_mon,tm24h->tm_mday,
tm24h->tm_hour,tm24h->tm_min,tm24h->tm_sec);

return 0;

}

『貳』 在Linux下用C語言編程

4。守護進程的創建
如果你在DOS時代編寫過程序,那麼你也許知道在DOS下為了編寫一個常駐內存的程序我們要編寫多少代碼了.相反如果在Linux下編寫一個"常駐內存"的程序卻是很容易的.我們只要幾行代碼就可以做到. 實際上由於Linux是多任務操作系統,我們就是不編寫代碼也可以把一個程序放到後台去執行的.我們只要在命令後面加上&符號SHELL就會把我們的程序放到後台去運行的. 這里我們"開發"一個後台檢查郵件的程序.這個程序每個一個指定的時間回去檢查我們的郵箱,如果發現我們有郵件了,會不斷的報警(通過機箱上的小喇叭來發出聲音). 後面有這個函數的加強版本加強版本
後台進程的創建思想: 首先父進程創建一個子進程.然後子進程殺死父進程(是不是很無情?). 信號處理所有的工作由子進程來處理.

#include
#include
#include
#include
#include
#include
#include

/* Linux 的默任個人的郵箱地址是 /var/spool/mail/用戶的登錄名 */

#define MAIL "/var/spool/mail/hoyt"

/* 睡眠10秒鍾 */

#define SLEEP_TIME 10

main(void)
{
pid_t child;

if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;

while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}

你可以在默認的路徑下創建你的郵箱文件,然後測試一下這個程序.當然這個程序還有很多地方要改善的.我們後面會對這個小程序改善的,再看我的改善之前你可以嘗試自己改善一下.比如讓用戶指定郵相的路徑和睡眠時間等等.相信自己可以做到的.動手吧,勇敢的探險者.
好了進程一節的內容我們就先學到這里了.進程是一個非常重要的概念,許多的程序都會用子進程.創建一個子進程是每一個程序員的基本要求!

『叄』 Linux下的高級網路數據包抓取技術linux下抓包

Linux 下的高級網路數據包抓取技術是基於Linux內核的一系列技術,用來捕獲來往網路之間的數據包,並進行深入的分析。在Linux中,有一個專用於數據包抓取的工具叫做libpcap(Linux Packet Capturing Library),它能夠不受網路環境的限制,抓取所有在某一時刻的全部流量。藉助於這個工具,Linux下的高級網路數據包抓取技術可以捕獲並全面分析各種數據包,包括TCP、UDP、ICMP、ARP、HTTP等,也可捕獲應用層數據,如FTP、DNS等網路協議。
在實現高級網路數據包抓取技術前,首先需要掌握Linux系統下的socket編程技術,並對libpcap庫有基本認知。比如,通過調用pcap_lookupdev()函數,可以獲得本機活動的網卡設備;通過調用pcap_open_live()函數,可以開啟網卡設備的實時模式;最後通過調用pcap_loop()函數,就可以在實時模式下,不斷抓取從介面中出口的數據包。
此外,開發人員可以藉助libpcap在Linux系統下對抓取的數據包進行深度分析。基本上,分析的思路就是首先從Data Link層開始,再到網路層、傳輸層和應用層,並分析每一層所有可用信息,如IP、傳輸埠號,乃至用戶名和密碼等。例如,要分析TCP數據包,可以調用pcap_next_ex()函數獲取一個TCP數據包;再調用tcphdr結構體的屬性對數據包的源IP、源埠號、目的IP和目的埠號進行分析,從而大致分析每個數據包的來源、去向等信息。
藉助高級網路數據包抓取技術,可以有效幫助大型公司解決安全問題,斷定黑客入侵的行為,檢測異常情況等。下面是一段使用libpcap來抓取TCP報文的代碼,展示了libpcap在Linux系統下對數據包進行抓取技術的步驟:
#include
main()
{
char* dev;
char errbuf[PCAP_ERRBUF_SIZE];
pcap_t *handle;
struct bpf_program fp;
char filter_exp[] = “tcp”;

/* 獲取網路介面 */
dev = pcap_lookupdev(errbuf);
if(dev == NULL)
{
fprintf(stderr,”Couldn’t find default device: %s\n”, errbuf);
return(2);
}
/* 打開網路介面 */
handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
if(handle == NULL)
{
fprintf(stderr, “Couldn’t open device %s: %s\n”, dev, errbuf);
return(2);
}
/* 對TCP數據包進行過濾*/
if(pcap_compile(handle, &fp, filter_exp, 0, PCAP_NETMASK_UNKNOWN) == -1)
{
fprintf(stderr, “Couldn’t parse filter %s:%s\n”, filter_exp, pcap_geterr(handle));
return (2);
}

if(pcap_setfilter(handle, &fp) == -1)
{
fprintf(stderr, “Couldn’t install filter %s:%s\n”, filter_exp, pcap_geterr(handle));
return (2);
}
/* 處理抓取到的數據包 */
pcap_loop(handle, -1, packet_handler, NULL);
pcap_close(handle); /*最後關閉網路介面*/
return 0;
}
總之,Linux下的高級網路數據包抓取技術,可以幫助技術人員有效檢測網路異常情況,此外還可供網路測試人員、安全專家以及技術分析師們進行相關研究。

閱讀全文

與linuxfprintf相關的資料

熱點內容
哪個軟體可以編程手機軟體 瀏覽:554
如東如何學數控編程培訓 瀏覽:5
微信h5頁面怎麼修改 瀏覽:931
手機怎麼無法打開視頻文件夾 瀏覽:840
抖音如何上直播網站 瀏覽:887
錄屏截圖大師保存的文件在哪裡 瀏覽:751
紅河谷第二個版本 瀏覽:895
c語言如何讓整型數據的商為小數 瀏覽:863
怎樣下東西不要密碼 瀏覽:320
小米手機拍照後文件名要怎麼設置 瀏覽:429
每年程序員就業形勢 瀏覽:425
安卓手機如何卸載程序 瀏覽:955
相機能用qq不能用 瀏覽:319
win10如何設置成xp配置文件 瀏覽:748
蘋果隔空傳遞以後文件在哪裡 瀏覽:927
打開ps顯示文件名無效 瀏覽:379
做推廣哪個網站靠譜 瀏覽:588
qq飛車如何綁定好友 瀏覽:873
php編程語言在哪裡 瀏覽:302
矢量文件有哪些格式 瀏覽:790

友情鏈接