⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.c

📁 自动侦测插入的存贮设备(U盘/移动硬盘等)
💻 C
字号:
#include "auto_cp.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>#include <sys/utsname.h>#include <error.h>#include <dirent.h>#include <sys/stat.h>#include <sys/types.h>#define MAX_PATH_LENGTH 128#include <dirent.h>////获取某个目录下的所有文件的文件名//void get_dir_filename(char *path,char *result)//{//    char ch,infile[50],outfile[50];//    struct dirent *ptr;    //    DIR *dir;//     //     //    dir=opendir(path);//    while((ptr=readdir(dir))!=NULL)//    {//    //跳过'.'和'..'两个目录//        if(ptr->d_name[0] == '.')//            continue;//        printf("%s is ready...\n",ptr->d_name);//        sprintf(result,"%s\n%s",result,ptr->d_name);//    }//    closedir(dir);//}//get_file_length(char *filenname, off_t file_length)//{//   struct stat buf;//   //  //  stat( filenname, &buf);//  return buf.st_size;//}int my_system(const char* pCmd, char* pResult, int size){                                                              		int fd[2];                                                     		int pid;                                                       		int count;                                                     		int left;                                                      		char* p = 0;                                                   		int maxlen;					maxlen = size - 1;		memset(pResult, 0, size);                                      		if(pipe(fd))                                                   		{                                                              				printf("[my_system]:pipe error\n");                                         				return -1;                                                    		}                                                              		if((pid = fork()) == 0)                                        		{// chile process                                              				int fd2[2];                                                    				if(pipe(fd2))                                                  				{                                                              						printf("[my_system]:pipe2 error\n");                                        						return -1;                                                    				}                                                              				close(1);                                                      				dup2(fd2[1],1);                                                				close(fd[0]);                                                  				close(fd2[1]);               	                                 				system(pCmd);				system("echo aa");                                                  				read(fd2[0], pResult, maxlen);                                 				pResult[strlen(pResult)-1] = 0;				                                				write(fd[1], pResult, strlen(pResult));								close(fd2[0]);                                                 				exit(0);                                                       		}                                                              		// parent process                                              		close(fd[1]);                                                  		p = pResult;                                                   		left = maxlen;	  		  		                                             		while(count = read(fd[0], p, left)) 		{                         				p += count;                                                    				left -= count;				                                                 				if(left == 0)                                                  				break;                                                         		}		pResult[strlen(pResult)-2] = 0;		if (strlen(pResult) != 0)			{				pResult[strlen(pResult)-1] = 0;			}                                                            		close(fd[0]);                                                   		return 0;                                                      } int logfile(char *log_string){		FILE *fp;	struct tm db_time_new;	char log_file_name[128];	time_t db_sec;			time(&db_sec);		memcpy(&db_time_new, localtime(&db_sec), sizeof(db_time_new));	 sprintf(log_file_name,"%s%d-%d-%d.log",LOGFILE,db_time_new.tm_year+1900,db_time_new.tm_mon+1,db_time_new.tm_mday);	if((fp=fopen(log_file_name,"a"))==NULL)	{		printf("[log] open %s fail\n!",LOGFILE);		return -1;	}	else	{		if(fprintf(fp,"%d-%d-%d %d:%d:%d %s\n",db_time_new.tm_year+1900,db_time_new.tm_mon+1,db_time_new.tm_mday,db_time_new.tm_hour,db_time_new.tm_min,db_time_new.tm_sec,log_string)==-1)		{		   return -1;			}		fflush(fp);	}	fclose(fp);	}int IsFileExist(char *path){    if(!access(path, F_OK))    {        return 1;    }    return 0;}int IsDirectoryExist(char * pathname){    DIR *pDir;    if (NULL == (pDir = opendir(pathname)))    {         return -1;    }    else    {        closedir(pDir);        return 0;    }}/*Function:Get filename from path.Return:NULL*/void getfilename(char *path,char *filename){	char *p;	int i;	p=path;	i=1;	while(i>=0)	{		i=instr(p,"/");		p=p+i+1;	}	strcpy(filename,p);}/*Function:Get basepath from path.Return:NULL*/void getbasepath(char *path,char *basename){	char *p,*q,pp[256];	int i;  strcpy(pp,path);  	p=pp;	i=1;	while(i>=0)	{		q=p;		i=instr(p,"/");		p=p+i+1;			}	*q='\0';	strcpy(basename,pp);}int uppercase(char *prestr,char *str,int len){	int i;		if(len<0)		return -1;	for(i=0;i<len;i++)	{		if(*(prestr+i)<='z'&&*(prestr+i)>='a')			*(str+i)=*(prestr+i)+('A'-'a');		else			*(str+i)=*(prestr+i);	}	*(str+i)='\0';	return 0;}int lowcase(char *prestr,char *str,int len){	int i;		if(len<0)		return -1;	for(i=0;i<len;i++)	{		if(*(prestr+i)<='Z'&&*(prestr+i)>='A')			*(str+i)=*(prestr+i)-('A'-'a');		else			*(str+i)=*(prestr+i);	}	*(str+i)='\0';	return 0;}int mkdirs(char *dir){    char path[MAX_PATH_LENGTH];    char *p;    strcpy(path, dir);    p = path;    if(!access(dir, F_OK))    {        return 0;    }    for (p = strchr((p+1), '/'); p; p = strchr((p+1), '/'))    {        // p = strchr(dir, '/');        *p = '\0';        if(access(path, F_OK))        {            /* create dir */            if (mkdir(path, 777))                return 1;        }        *p = '/';    }    /* make sure last one got created */    if(access(dir, F_OK))        if (mkdir(dir, 777))            return 1;    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -