資源簡介
linux下插入U盤,自動讀取文件【示例】
方便實用

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?nk.h>
#include?
#include?
#define?UEVENT_BUFFER_MAX???????(1024*15)???//15K
//?the?name?of?UDisk?is?‘UTEST01‘?the?name?of?file?is?‘123‘
int?main(int?argcchar?*argv[])
{
????????int?i?=?0;
int?aiResult=?0;
int?aiHotplug_sock=?0;
const?int?buffersize?=?1024?;??????//1K?
????????struct?sockaddr_nl?astNLaddr;
????????char?apcRecBuf[UEVENT_BUFFER_MAX];?
????????int?fd?=?0;
????????DIR*?dir?=?NULL;
????????struct?dirent?*s_dir;
????????bzero(&apcRecBuf?UEVENT_BUFFER_MAX);
//connect?to?NETlink_Kobject_UEVENT
????????memset(&astNLaddr?0x00?sizeof(struct?sockaddr_nl));
????????astNLaddr.nl_family?=?AF_NETlink;
????????astNLaddr.nl_pid?=?getpid();
????????astNLaddr.nl_groups?=?1;
????????aiHotplug_sock?=?socket(PF_NETlink?SOCK_DGRAM?NETlink_Kobject_UEVENT);
????????setsockopt(aiHotplug_sock?SOL_SOCKET?SO_RCVBUFFORCE?&buffersize?sizeof(buffersize));
????????aiResult?=?bind(aiHotplug_sock?(struct?sockaddr?*)?&astNLaddr?sizeof(struct?sockaddr_nl));
#if?0
????????while(1)
????????{
????????????????bzero(&apcRecBuf?UEVENT_BUFFER_MAX);
????????????????recv(aiHotplug_sock?&apcRecBuf?sizeof(apcRecBuf)?0);
????????????????printf(“%s\n“?apcRecBuf);
????????????????if(!memcmp(apcRecBuf“add@“4)?&&?!memcmp(&apcRecBuf[strlen(apcRecBuf)?-?4]“/sdb“4))
????????????????{
????????????????????????printf(“Found?U?Disk\n“);
????????????????????????break;
????????????????}
????????}
????????sleep(1);
????????dir?=?opendir(“/media/UTEST01/“);
????????if(NULL?!=?dir)printf(“Dir?is?OPEN?!!!\n“dir);
????????while((s_dir=readdir(dir))!=NULL)?????
????????{?????
???
????????????????if((strcmp(s_dir->d_name“.“)==0)||(strcmp(s_dir->d_name“..“)==0))\
????????????????????????continue;??
???
????????????????printf(“%s\n“s_dir->d_name);?????
?
????????}??
#endif
????????fd?=?open(“/media/UTEST01/123“?O_RDWR?|?O_NOCTTY);
????????printf(“%d\n“fd);
????????bzero(&apcRecBuf?UEVENT_BUFFER_MAX);
????????aiResult?=?read(fdapcRecBufUEVENT_BUFFER_MAX);
????????printf(“%d\n“aiResult);
????????for(i?=?0;?i?????????{
????????????????printf(“%d?“apcRecBuf[i]);
????????????????if(i%20?==?19)printf(“\n“);
????????}
????????printf(“\n“);
????????return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????277??2010-04-01?15:19??Makefile
?????文件????????2416??2010-05-02?10:17??test.c
- 上一篇:Ajax 實現下拉列表 感應 模糊查詢
- 下一篇:470d黃金版海力士.rom
評論
共有 條評論