linux下用c获取指定文件|linux下怎么用c获取硬盘物理序列号

linux下用c获取指定文件|linux下怎么用c获取硬盘物理序列号的第1张示图

A. linux c 查看当前目录下是否有指定文件

1. Shell 版本 #获取当前脚本所在绝对路径 cur_dir=$(cd "$(dirname "$0")"; pwd)2. C语言版本方法一、用realpath函数。这种方法用于开机启动程序获取自身目录会出错char current_absolute_path[MAX_SIZE];//获取当前目录绝对路径if (NULL == realpath("./", current_absolute_path)){ printf("***Error***\n"); exit(-1);}strcat(current_absolute_path, "/");printf("current absolute path:%s\n", current_absolute_path);方法二、用getcwd函数。这种方法用于开机启动程序获取自身目录会出错char current_absolute_path[MAX_SIZE];//获取当前目录绝对路径if (NULL == getcwd(current_absolute_path, MAX_SIZE)){ printf("***Error***\n"); exit(-1);}printf("current absolute path:%s\n", current_absolute_path);方法三、用readlink函数。这种方法最可靠,可用于开机启动程序获取自身目录char current_absolute_path[MAX_SIZE];//获取当前程序绝对路径int cnt = readlink("/proc/self/exe", current_absolute_path, MAX_SIZE);if (cnt < 0 || cnt >= MAX_SIZE){ printf("***Error***\n"); exit(-1);}//获取当前目录绝对路径,即去掉程序名int i;for (i = cnt; i >=0; –i){ if (current_absolute_path[i] == '/') { current_absolute_path[i+1] = '\0'; break; }}printf("current absolute path:%s\n", current_absolute_path);

B. linux c读取文件中特定格式的内容

用指针循环移动 判断是不是你对应的数据 16进制的 只能这么处理

C. Linux系统下 C语言读取文件内容,并将指定内容或某个特殊字符开始的内容,存放到字符串

1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的版第几个字符,再存入到一权个字符串当中。2、例程: #include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; /

D. linux怎么c语言读取普通文件内容

1、用fgets函数复可以读取文件中某制行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:#include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; //第三行,第四列 FILE *fp = fopen("data.txt","r"); while(fgets(c,100,fp)){ //读入每行数据 i–; if(i==0) strcpy(a,c); //读到第三行数据 b[k++]=c[j-1]; //把每行的那列字符拷到b中 } b[k]=0; printf("第%d行数据:%s\n",i,a); printf("第%d列数据:%s\n",j,b); fclose(fp);

E. linux下怎么用c获取硬盘物理序列号

1、在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下:

intioctl(intfd,unsignedlongrequest,…);ioctl的第一个参数是文件标识符,用open()函数打开设备时获取。ioctl第二个参数为用于获得指定文件描述符的标志号,获取硬盘序列号,一般指明为HDIO_GET_IDENTITY。ioctl的第三个参数为一些辅助参数,要获取硬盘序列号,需要借助于structhd_driveid结构体来保存硬盘信息,该结构体在Linux/hdreg.h中,structhd_driveid的声明如下structhd_driveid{unsignedshortconfig;/lotsofobsoletebitflags*/unsignedshortcyls;/*Obsolete,"physical"cyls*/unsignedshortreserved2;/*reserved(word2)*/unsignedshortheads;/*Obsolete,"physical"heads*/unsignedshorttrack_bytes;/*unformattedbytespertrack*/unsignedshortsector_bytes;/*unformattedbytespersector*/unsignedshortsectors;/*Obsolete,"physical"sectorspertrack*/unsignedshortvendor0;/*vendorunique*/unsignedshortvendor1;/*vendorunique*/unsignedshortvendor2;/*Retiredvendorunique*/unsignedcharserial_no[20];/*0=not_specified*/unsignedshortbuf_type;/*Retired*/unsignedshortbuf_size;/*Retired,512byteincrements*0=not_specified*/……};

2、源代码如下

#include<stdio.h>//ioctl()的声明头文件#include<sys/ioctl.h>//硬盘参数头文件,hd_driveid结构声明头文件#include<linux/hdreg.h>//文件控制头文件#include<sys/fcntl.h>intmain(){//用于保存系统返回的硬盘数据信息structhd_driveidid;//这里以第一块硬盘为例,用户可自行修改//用open函数打开获取文件标识符,类似于windows下的句柄intfd=open("/dev/sda",O_RDONLY|O_NONBLOCK);//失败返回if(fd<0){perror("/dev/sda");return1;}//调用ioctl()if(!ioctl(fd,HDIO_GET_IDENTITY,&id)){printf("SerialNumber=%s",id.serial_no);}return0;}

编译完成后,执行效果如下:

F. linux下用c语言如何调用文件

问题没听太明白,操作文件用相关的系统函数如fopen等不就可以了?或者想调用其他文建中的函数或变量,直接把文件include进来就可以了。

G. linux下如何用C程序读写本地文件

是一样来的。如果是同目自录则直接写文件名,如果是不同的目录,可以写明路径。如: 读同目录文件local.txtfopen("local.txt","r");读不同目录文件 /home/yourname/otherdir/other.txtfopen("/home/yourname/otherdir/other.txt","r");你可以使用pwd命令来获得文件路径

H. 用linux下的c语言读取txt文件中的列数据

1.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第回几个字符,再存入到一答个字符串当中。2.例程:

#include<stdio.h>#include<string.h>voidmain(){chara[100],b[100],c[100];inti=3,j=4,k=0;//第三行,第四列FILE*fp=fopen("data.txt","r");while(fgets(c,100,fp)){//读入每行数据i–;if(i==0)strcpy(a,c);//读到第三行数据b[k++]=c[j-1];//把每行的那列字符拷到b中}b[k]=0;printf("第%d行数据:%s",i,a);printf("第%d列数据:%s",j,b);fclose(fp);}

I. Linux C语言怎么读取文件指定行内容

1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:

#include<stdio.h>#include<string.h>voidmain(){chara[100],b[100],c[100];inti=3,j=4,k=0;//第三行,第四列FILE*fp=fopen("data.txt","r");while(fgets(c,100,fp)){//读入每行数据i–;if(i==0)strcpy(a,c);//读到第三行数据b[k++]=c[j-1];//把每行的那列字符拷到b中}b[k]=0;printf("第%d行数据:%s",i,a);printf("第%d列数据:%s",j,b);fclose(fp);}

J. LINUX下C语言实现文件名检索

LINUX下C语言通过文件名检索创建多个文件,实现文件名有规律的变化test1,test2…这种功能,方法如下:

DIR*opendir(constchar*filename);structdirent*readdir(DIR*dirp);//利用这两个函数获取要建立文件的目录while((psDirent=readdir(pdir))!=NULL){//readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件structstatst;stat(pcFileName,&st);if(S_ISDIR(st.st_mode))continue;//是目录继续循环elsefilecount++;//是文件就加1}//通过while循环创建文件名为文件(filecount+1)的文件。

未经允许不得转载:山九号 » linux下用c获取指定文件|linux下怎么用c获取硬盘物理序列号

赞 (0)