嵌入式linux编程中的一些基本操作
来源:互联网 发布:配音软件有哪些 编辑:程序博客网 时间:2024/04/29 22:39
本文总结了一些嵌入式linux开发过程中的常用api,希望对大家有所帮助。
一 、 获取系统时间
int getlocaltime(struct tm *time){ struct timeval tv; time_t second; struct tm *temp; gettimeofday(&tv, NULL); second = tv.tv_sec; temp = localtime(&second); temp->tm_year += 1900; temp->tm_mon += 1; memcpy(time, temp,sizeof(struct tm)); return 1;}
二 、 设置系统时间
int setlocaltime(struct tm *tm){time_t timesec;struct timeval tv;struct tm temptm;memcpy(&temptm,tm,sizeof(temptm));temptm.tm_year = tm->tm_year - 1900;temptm.tm_yday = 0;temptm.tm_isdst = -1;/* Be sure to recheck dst. */timesec = mktime(&temptm);tv.tv_sec = timesec;tv.tv_usec= 0;settimeofday(&tv,0);//设置系统时间 return 1;}
三 、 设置IP地址
int setip(char* ip){ struct ifreq temp; struct sockaddr_in *addr; int fd = 0; int ret = -1; strcpy(temp.ifr_name, "eth0"); if((fd=socket(AF_INET, SOCK_STREAM, 0))<0) { return -1; } addr = (struct sockaddr_in *)&(temp.ifr_addr); addr->sin_family = AF_INET; addr->sin_addr.s_addr = inet_addr(ip); ret = ioctl(fd, SIOCSIFADDR, &temp); close(fd); if(ret < 0) return -1; return 0;}
四 、 检查网线是否连接
int check_nic(void) { struct ifreq ifr; int skfd = socket(AF_INET, SOCK_DGRAM, 0); strcpy(ifr.ifr_name, "eth0"); if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) { close(skfd); return -1; } if(ifr.ifr_flags & IFF_RUNNING){ printf("link up\n"); close(skfd); return 0; // 网卡已插上网线 }else { printf("link down\n"); close(skfd); return -1; } }
五 、 读取本机MAC地址
int read_mac(unsigned char *buf,char *name){ int sock;int ret;struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, 0); if(sock == -1) { perror("socket error"); return -1; } memset(&ifr, 0, sizeof(ifr)); strcpy(ifr.ifr_name, name); ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';ret = ioctl(sock,SIOCGIFHWADDR,&ifr);if(ret == 0){ memcpy(buf, ifr.ifr_hwaddr.sa_data, 6); printf("HW address is: %02x:%02x:%02x:%02x:%02x:%02x \n", (unsigned char)buf[0], (unsigned char) buf[1], (unsigned char) buf[2], (unsigned char)buf[3], (unsigned char) buf[4], (unsigned char)buf[5]); }else{perror("ioctl error!\n");}close(sock);return ret;}
六、 判断文件是否存在
int is_file_exist(const char *file_path){ if(file_path == NULL)return -1;if(access(file_path,F_OK)==0) return 1; return -1;}
七 、 获取IP地址
void getip(unsigned char* ip_buf,char * name){ struct ifreq temp; struct sockaddr_in *myaddr; int fd = 0; int ret = -1; strcpy(temp.ifr_name, name); if((fd=socket(AF_INET, SOCK_STREAM, 0))<0) { return NULL; } ret = ioctl(fd, SIOCGIFADDR, &temp); close(fd); if(ret < 0) return NULL; myaddr = (struct sockaddr_in *)&(temp.ifr_addr); strcpy(ip_buf, inet_ntoa(myaddr->sin_addr)); printf("getip:%s\n",ip_buf);}
八 、 快速排序
void QuickSort(int * num,int low,int high){ int temp; if(low>=high) return; int mid=(low+high)/2,i=low,j=high,x; x=num[mid]; while(1) { while(num[i]<x) i++; while(num[j]>x) j--; if(i>=j) break; temp=num[i]; num[i]=num[j]; num[j]=temp; } num[mid]=num[j]; num[j]=x; QuickSort(num,low,j-1); QuickSort(num,j+1,high); return;}
OK,就讲这么多了,看看大家有什么补充的,都贴出来吧,也为C语言开发做点贡献。
0 0
- 嵌入式linux编程中的一些基本操作
- Linux内核中的一些基本编程操作
- Linux内核中的一些基本编程操作
- linux中的一些基本操作
- Linux内核中的一些基本操作
- Linux内核中的一些基本操作
- Linux内核中的一些基本数据结构操作
- hdfs和hbase在linux中的一些基本操作
- 数据库中的一些基本操作
- Hadoop中的一些基本操作
- Hadoop中的一些基本操作
- Hadoop中的一些基本操作
- Hadoop中的一些基本操作
- Mysql中的一些基本操作
- linux一些基本操作记录
- linux的一些基本操作
- linux的一些基本操作
- 一些linux的基本操作
- outlook 一直发送 "邮箱快满了"
- 管住你自己的情绪
- XCode调试技巧–设置全局断点快速定位问题代码所在行
- LeetCode Divide Two Integers
- js中的循环流程的控制return false,return true,break,continue
- 嵌入式linux编程中的一些基本操作
- sql server 2008登陆服务器名称是什么
- (java)Bulls and Cows
- CIDR地址分类
- cJSON各函数实现的功能
- python第三方库solrpy
- java---成员变量
- solr部署到tomcat
- IOS 内存优化和调试技巧