99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享的幾個(gè)小的代碼片段

電子工程師 ? 來源:嵌入式大雜燴 ? 作者:雜燴君 ? 2022-07-29 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

獲取CPU溫度

應(yīng)用可以定時(shí)獲取CPU的溫度,比如程序異常崩潰時(shí),我們可能需要分析多方面原因,CPU溫度就是其中之一。

代碼:

左右滑動(dòng)查看全部代碼>>>

#include
#include
#include
#include
#include

#defineCPU_TEMP_FILE0"/sys/devices/virtual/thermal/thermal_zone0/temp"

structcpu_temperature
{
intinteger_part;
intdecimal_part;
};

typedefstructcpu_temperaturecpu_temperature_t;

cpu_temperature_tget_cpu_temperature(constchar*_cpu_temp_file)
{
FILE*fp=NULL;
cpu_temperature_tcpu_temperature={0};
inttemp=0;

fp=fopen(_cpu_temp_file,"r");
if(NULL==fp)
{
printf("fopenfileerror
");
returncpu_temperature;
}

fscanf(fp,"%d",&temp);
cpu_temperature.integer_part=temp/1000;
cpu_temperature.decimal_part=temp%1000/100;

fclose(fp);

returncpu_temperature;
}


intmain(intarc,char*argv[])
{
cpu_temperature_tcpu_temperature={0};

cpu_temperature=get_cpu_temperature(CPU_TEMP_FILE0);
printf("cpu_temperature=%d.%d℃
",cpu_temperature.integer_part,cpu_temperature.decimal_part);
return0;
}

運(yùn)行結(jié)果:

a9521a68-0e89-11ed-ba43-dac502259ad0.png

獲取文件大小

有時(shí)候我們需要獲取某個(gè)文件的大小,比如如果需要發(fā)送文件里的內(nèi)容,則需要知道文件的大小。

代碼:

左右滑動(dòng)查看全部代碼>>>

#include
#include
#include

longget_file_size(constchar*_file_name)
{
FILE*fp=fopen(_file_name,"r");
if(NULL==fp)
{
printf("fopenerror
");
return-1;
}

fseek(fp,0L,SEEK_END);
longsize=ftell(fp);
fclose(fp);

returnsize;
}

intmain()
{
#defineFILE_NAME"./get_file_size"
longfile_size=get_file_size(FILE_NAME);
printf("file_size=%ld
",file_size);

return0;
}

運(yùn)行結(jié)果:

a962c8ea-0e89-11ed-ba43-dac502259ad0.png

獲取時(shí)間戳

系統(tǒng)時(shí)間戳很常用,比如log輸出時(shí),可以附帶時(shí)間戳數(shù)據(jù),方便分析。

代碼:

左右滑動(dòng)查看全部代碼>>>

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

longlongget_sys_time_ms(void)
{
longlongtime_ms=0;
structtimevalsys_current_time;

gettimeofday(&sys_current_time,NULL);
time_ms=((longlong)sys_current_time.tv_sec*1000000+sys_current_time.tv_usec)/1000;

returntime_ms;
}

intmain(intarc,char*argv[])
{
longlongcur_sys_time=get_sys_time_ms();

printf("cur_sys_time=%lldms
",cur_sys_time);

return0;
}

運(yùn)行結(jié)果:

a9725c24-0e89-11ed-ba43-dac502259ad0.png

獲取MAC

MAC地址,有時(shí)候會(huì)作為設(shè)備ID實(shí)用,作為設(shè)備唯一標(biāo)識(shí)。

代碼:

左右滑動(dòng)查看全部代碼>>>

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

intget_netif_mac(constchar*_ifr_name,uint8_t*_mac)
{
int32_tret=-1;
structifreqm_ifreq;
int32_tsock=0;

sock=socket(AF_INET,SOCK_STREAM,0);
if(sock0)
{
printf("socketerr
");
gotoerr;
}

strcpy(m_ifreq.ifr_name,_ifr_name);

ret=ioctl(sock,SIOCGIFHWADDR,&m_ifreq);
if(ret0)
{
printf("ioctlerr:%d
",ret);
gotoerr;
}

snprintf((char*)_mac,32,"%02x%02x%02x%02x%02x%02x",(uint8_t)m_ifreq.ifr_hwaddr.sa_data[0],
(uint8_t)m_ifreq.ifr_hwaddr.sa_data[1],
(uint8_t)m_ifreq.ifr_hwaddr.sa_data[2],
(uint8_t)m_ifreq.ifr_hwaddr.sa_data[3],
(uint8_t)m_ifreq.ifr_hwaddr.sa_data[4],
(uint8_t)m_ifreq.ifr_hwaddr.sa_data[5]);

return0;
err:
return-1;
}


intmain(intargc,char**argv)
{
charmac_str[32]={0};
get_netif_mac("wlan1",mac_str);
printf("mac=%s
",mac_str);

return0;
}

運(yùn)行結(jié)果:

a981671e-0e89-11ed-ba43-dac502259ad0.png

獲取IP

有時(shí)候需要獲取本機(jī)IP進(jìn)行顯示。

代碼:

左右滑動(dòng)查看全部代碼>>>

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

intget_local_ip(constchar*_ifr_name,char*_ip)
{
intret=-1;
intsockfd;
structsockaddr_insin;
structifreqifr;

sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(-1==sockfd)
{
printf("socketerror
");
returnret;
}

strncpy(ifr.ifr_name,_ifr_name,IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ-1]=0;

if(ioctl(sockfd,SIOCGIFADDR,&ifr)0)
{
printf("ioctlerror
");
close(sockfd);
returnret;
}

memcpy(&sin,&ifr.ifr_addr,sizeof(sin));
intip_len=snprintf(_ip,32,"%s",inet_ntoa(sin.sin_addr));

close(sockfd);
ret=ip_len;

returnret;
}

intmain(intargc,char**argv)
{
charip_str[32]={0};
get_local_ip("wlan1",ip_str);
printf("ip=%s
",ip_str);

return0;
}

運(yùn)行結(jié)果:

a992103c-0e89-11ed-ba43-dac502259ad0.png

以上就是本次分享的幾個(gè)小的代碼片段。

如果覺得文章有幫助,麻煩幫忙轉(zhuǎn)發(fā),謝謝!

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217131
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70761

原文標(biāo)題:分享幾個(gè)實(shí)用的代碼片段(附代碼例子)

文章出處:【微信號(hào):嵌入式與Linux那些事,微信公眾號(hào):嵌入式與Linux那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【DIY掃地機(jī)器人】第四篇----動(dòng)起來,動(dòng)起來

    把它做成六棱柱,于是又狠狠賺了一筆,后來又有人在一端加上個(gè)橡皮頭,這個(gè)人又狠狠賺了一筆。。。。。。希望我的小車加桑抹布,也能狠狠賺一筆,嘎嘎嘎???b class='flag-5'>幾個(gè)代碼片段,外部中斷紅外解碼的控制小車行動(dòng)的,主函數(shù)
    發(fā)表于 03-18 18:03

    GoldWave如何裁剪音樂片段

    GoldWave(http://www.goldwave.cc/)是一款非常優(yōu)秀的音樂編輯軟件,我們可以使用該軟件做出各種聲音,下面就跟大家分享一下我們做鈴聲的時(shí)候經(jīng)常用GoldWave裁剪音樂片段
    發(fā)表于 12-20 16:59

    請(qǐng)問我可以學(xué)習(xí)任何USAT匯編代碼片段來獲得USTAR1的運(yùn)行嗎?

    嗨,伙計(jì)們,對(duì)于PIC32 MX460我可以學(xué)習(xí)任何USAT匯編代碼片段來獲得USTAR1的運(yùn)行嗎?請(qǐng)讓我知道。謝謝大家,祝你們有美好的一天。Pete: 以上來自于百度翻譯 以下為原文 Hi
    發(fā)表于 06-19 10:05

    求提供一個(gè)使用IOBUF原語的小型VHDL代碼片段

    嗨,有人可以為我提供一個(gè)使用IOBUF原語的小型VHDL代碼片段。帶著敬意vjose2以上來自于谷歌翻譯以下為原文Hi , Can someone provide me with an small
    發(fā)表于 06-27 09:01

    在RT-Thread studio中Codeexpander代碼片段軟件不起作用是什么原因

    不知道有沒有人使用Codeexpander代碼片段管理軟件,在VScode、keil中,都可以使用,給自己寫好的代碼片段設(shè)置一個(gè)快捷鍵比如sthread,就可以直接輸入自己編寫的thr
    發(fā)表于 08-30 14:20

    在RT-Thread studio中Codeexpander代碼片段軟件不起作用是何原因?

    不知道有沒有人使用Codeexpander代碼片段管理軟件,在VScode、keil中,都可以使用,給自己寫好的代碼片段設(shè)置一個(gè)快捷鍵比如sthread,就可以直接輸入自己編寫的thr
    發(fā)表于 02-10 14:21

    為ESP8266編寫一個(gè)TCP服務(wù)器程序,無法找到要在我的程序中聲明的正確包含文件是怎么回事?

    我正在嘗試為 ESP8266 編寫一個(gè) TCP 服務(wù)器程序,并且我正在按照 ESP8266 RTOS SDK 1.4.0 編程指南進(jìn)行操作。該指南提供了幾個(gè)代碼片段,關(guān)于簡(jiǎn)單的 TCP 套接字,它們
    發(fā)表于 06-12 07:13

    幾個(gè)MiniGUI環(huán)境下的源代碼

    幾個(gè)MiniGUI環(huán)境下的源代碼
    發(fā)表于 01-08 14:27 ?22次下載

    如何在原理圖和PCB中創(chuàng)建代碼片段

    在電路板設(shè)計(jì)中成功地將電路連接在電路板上,包括元器件和布線,關(guān)鍵在于元器件的設(shè)計(jì)。在原理圖和PCB中創(chuàng)建兩個(gè)匹配Snippets時(shí),您需要為元器件創(chuàng)建獨(dú)特的指示符。本文介紹了將兩個(gè)原理圖和PCB片段連接在一起的成功關(guān)鍵,從而重新使用電路,節(jié)省寶貴的時(shí)間和金錢。
    發(fā)表于 04-30 14:01 ?2909次閱讀
    如何在原理圖和PCB中創(chuàng)建<b class='flag-5'>代碼</b><b class='flag-5'>片段</b>

    華為移動(dòng)服務(wù)中接觸衛(wèi)士的代碼片段

    簡(jiǎn)介 該項(xiàng)目是華為移動(dòng)服務(wù)中接觸衛(wèi)士的代碼片段,主要包括:密鑰管理、藍(lán)牙(BLE)任務(wù)管理、密鑰文件分析、數(shù)據(jù)存儲(chǔ)。本項(xiàng)目還提供了示例代碼,為您展示如何在已集成Google Exposure
    發(fā)表于 04-13 09:45 ?5次下載

    使用Arduino函數(shù)簡(jiǎn)化代碼

    組織擴(kuò)展代碼的一種出色技術(shù)是使用函數(shù),即可以根據(jù)需要從程序的其他部分(例如通過主循環(huán))調(diào)用的代碼片段。
    的頭像 發(fā)表于 08-16 09:23 ?2247次閱讀
    使用Arduino函數(shù)簡(jiǎn)化<b class='flag-5'>代碼</b>

    20個(gè)解決日常問題的Python代碼片段!

    在本文中,將分享20 個(gè) Python 代碼片段,以幫助你應(yīng)對(duì)日常編程挑戰(zhàn)。你可能已經(jīng)知道其中一些片段,但有些其他片段對(duì)你來說可能是新的。趕緊使用這些有用的 Python
    的頭像 發(fā)表于 03-13 09:40 ?1222次閱讀

    30秒就能學(xué)會(huì)的代碼片段

    今天給大家?guī)硪恍?0秒就能學(xué)會(huì)的代碼片段,這些代碼潛力無限,蘊(yùn)含了豐富的python編程思維,應(yīng)用領(lǐng)域非常廣泛,而且學(xué)起來非常簡(jiǎn)單。 1."二維列表" **解讀:**根據(jù)給定的長(zhǎng)和寬,以及初始值
    的頭像 發(fā)表于 10-31 15:22 ?996次閱讀
    30秒就能學(xué)會(huì)的<b class='flag-5'>代碼</b><b class='flag-5'>片段</b>

    RAG系統(tǒng)中答案無關(guān)片段對(duì)LLMs生成結(jié)果的影響分析

    與常見語義無關(guān)的答案無關(guān)片段相比,LLMs更容易受到高度語義相關(guān)的答案無關(guān)片段的影響;
    發(fā)表于 04-15 09:49 ?595次閱讀
    RAG系統(tǒng)中答案無關(guān)<b class='flag-5'>片段</b>對(duì)LLMs生成結(jié)果的影響分析

    C2000 DCSM ROM代碼片段/ROP漏洞

    電子發(fā)燒友網(wǎng)站提供《C2000 DCSM ROM代碼片段/ROP漏洞.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:39 ?0次下載
    C2000 DCSM ROM<b class='flag-5'>代碼</b><b class='flag-5'>片段</b>/ROP漏洞