导航:首页 > 文件类型 > clinux文件读写

clinux文件读写

发布时间:2023-06-19 06:36:29

① 我要用c编写程序读写磁盘,在linux中磁盘为文件,怎样用c语言获取磁盘的文件描述符,然后对磁盘进行读写

linux下面的概念是一切皆文件。所以没有像c盘d盘这样的东西,有的只是各种各样的文件专夹和文件。要读属一个linux下面的文件很简单,命令pwd可以得到当前路径,然后路径接上你打开的文件名就可以知道这个文件的详细路径了。直接open就可以了。

② linux下c语言 读取文件内容

没测试过,不过问题应该是fgetc这里
fgetc获取到第一个字符,比如第一行的'#'号,然后fgets获取到后面的字符,打印版当然就没有权第一个字符了,解决方式要么只用fgets,要么把fgetc获取的字符也打印出来

③ linux系统下,文件存储与数据读写问题(C语言)。

如果是X86的操作系统,直接用整个结构体做memcpy就可以了,如果要考虑字节对齐的问题可以尝试这样编码,
PS:没有调试过,仅仅提供思路哦
#include <stdio.h>
#include <string.h>

typedef struct User
{
int ID;
char Name[20];
int Score;
}tUser;

tUser stUser[4] = {
{1, "a", 60},
{2, "b", 70},
{3, "c", 80},
{4, "d", 90}
};

void MyWrite (int fd, tUser *pstUser, int iMemNum)
{
int i = 0, iLen = 0;
char szBuf[1024] = {0};

/*清空缓冲区*/
memset(szBuf, 0, 1024);

/*构造结构体存储字符串*/
for (i = 0; i < iMemNum; i++) {
memcpy(szBuf+iLen, pstUser.ID, sizeof(int));
iLen += sizeof(int);
memcpy(szBuf+iLen, pstUser.Name, sizeof(char)*20);
iLen += sizeof(char)*20;
memcpy(szBuf+iLen, pstUser.Score, sizeof(int));
iLen += sizeof(int);

pstUser++;
}

//将szBuf的内容写入fd 文件
}

void MyRead (int fd, tUser *pstUser)
{
int i = 0, iLen = 0, iStructSize = sizeof(int) + sizeof(char)*20 +sizeof(int);
char szBuf[1024] = {0};
char szTemBuf[32] = {0};

/*清空缓冲区*/
memset(szBuf, 0, 1024);

//从fd 文件中读出内容到szBuf

iLen = strlen(szBuf);
i = 0;

/*构造结构体*/
while (iLen >= iStructSize) {

memcpy(szTemBuf, szBuf+i, sizeof(int));
szTemBuf[sizeof(int)] = 0;
pstUser.ID = atoi(szTemBuf);
i += sizeof(int);

memcpy(szTemBuf, szBuf+i, sizeof(char)*20);
szTemBuf[sizeof(char)*20] = 0;
strncpy(pstUser.Name, szTemBuf, 20);
i += sizeof(char)*20;

memcpy(szTemBuf, szBuf+i, sizeof(int));
szTemBuf[sizeof(int)] = 0;
pstUser.Score = atoi(szTemBuf);
i += sizeof(int);

iLen -= iStructSize;
pstUser++;
}

}

void MyFindByID(tUser *pstUser, int iMemNum, int iId)
{
int i = 0;

for (i = 0; i < iMemNum; i++) {
if (pstUser.ID == iId) {
printf("=============================\r\n");
printf("ID\t:%d\r\n", pstUser.ID);
printf("Name\t:%s\r\n", pstUser.Name);
printf("Score\t:%d\r\n", pstUser.Score);
printf("=============================\r\n");

return ;
}

pstUser++;
}
}

int main ()
{
FILE *file;
tUser stTmpUser[4];

file = fopen(path, "a");
if (file == NULL)
{
return -1;
}

MyWrite(file, &stUser[0], 4);
fclose(file);

file = fopen(path, "r");
if (file == NULL)
{
return -1;
}

MyRead(file, &stTmpUser[0]);
fclose(file);

MyFindByID(&stTmpUser[0], 4, 2);
return 0;
}

④ 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);

⑤ Linux C 缓冲文件和非缓冲文件读写方式用法

1.用write, read, open等系统调用编写分别实现如下功能的程序(要求进行必要的出错检查版):
(1)创建一个权文件testfile.txt,文件内容从键盘输入;
(2)将testfile.txt的内容显示在屏幕上,并将testfile.txt的内容复制到一个新的文件file2.txt中。
实验代码
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()

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

是一样来的。如果是同目自录则直接写文件名,如果是不同的目录,可以写明路径。

如:
读同目录文件local.txt
fopen("local.txt","r");

读不同目录文件 /home/yourname/otherdir/other.txt
fopen("/home/yourname/otherdir/other.txt","r");

你可以使用pwd命令来获得文件路径

⑦ Linux编程,怎样用C语言创建、读、写文件呀希望各位赐教!谢谢

既然得到了这文件指针,你想怎么打开都行,无需知道以前是什么模式。
用open更新你想要的打开方式。
o_rdonly
以只读方式打开文件
o_wronly
以只写方式打开文件
o_rdwr
以可读写方式打开文件。上述三种旗标是互斥的,
也就是不可同时使用,
但可与下列的旗标利用or(|)运算符组合。
o_creat
若欲打开的文件不存在则自动建立该文件。
o_excl
如果o_creat
也被设置,
此指令会去检查文件是否存在。文件若不存在则建立该文件,
否则将导致打开文件错误。此外,
若o_creat与o_excl同时设置,
并且欲打开的文件为符号连接,
则会打开文件失败。
o_noctty
如果欲打开的文件为终端机设备时,
则不会将该终端机当成进程控制终端机。
o_trunc
若文件存在并且以可写的方式打开时,
此旗标会令文件长度清为0,
而原来存于该文件的资料也会消失。
o_append
当读写文件时会从文件尾开始移动,
也就是所写入的数据会以附加的方式加入到文件后面。
o_nonblock
以不可阻断的方式打开文件,
也就是无论有无数据读取或等待,
都会立即返回进程之中。
o_ndelay
同o_nonblock。
o_sync
以同步的方式打开文件。
o_nofollow
如果参数pathname
所指的文件为一符号连接,
则会令打开文件失败。
o_directory
如果参数pathname
所指的文件并非为一目录,
则会令打开文件失败。
这是你要的
r
打开只读文件,
该文件必须存在。
r+
打开可读写的文件,
该文件必须存在。
w
打开只写文件,
若文件存在则文件长度清为0,
即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,
若文件存在则文件长度清为零,
即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,
则会建立该文件,
如果文件存在,
写入的数据会被加到文件尾,
即文件原先的内容会被保留。
a+
以附加方式打开可读写的文件。若文件不存在,
则会建立该文件,
如果文件存在,
写入的数据会被加到文件尾后,
即文件原先的内容会被保留。

⑧ LINUX C语言写一个读写文件的程序,读取的话,要把文件内容显示出来,写的话,就是写进文件里面咯

#include<stdio.h>
#include<stdlib.h>

intmain()
{
FILE*pf=fopen("a.txt","r");
if(pf==NULL){
printf("opena.txtfilefailed! ");
exit(0);
}

FILE*pf2=fopen("b.txt","w");
if(pf2==NULL){
printf("openb.txtfilefailed! ");
fclose(pf);
exit(0);
}

charch;
while(!feof(pf)){
ch=fgetc(pf);
putchar(ch);
fputc(ch,pf2);
}

fclose(pf2);
fclose(pf);

return0;
}


⑨ linux系统如何读写属性为c的文件

Linux把外部设备也当成文件来管理,这是继承了Unix一切皆文件的设计思想。
/dev目录内下的文件皆外部设备,所以你必须容有相应的内核模块来驱动相应的设备,否则此设备无法读写。
你是在测试COM口么?COM口有没有连接测试设备?没有的话,就算有相应的内核模块也是白搭的,就象光有电灯开关,没安装灯泡,你怎么按开关都白搭。

⑩ Linux编程,怎样用C语言创建、读、写文件呀希望各位赐教!谢谢

楼上正解,提供一小抄例子如下,另外,linux 下C读写文件函数有两种,一个是系统的,还有一个是C函数库的记得,好像是系统的文件句柄(file id)比较简单,然后函数库的那个提供了一个结构体,具体的记不请了....好长时间没写...

#include <stdio.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
int fid;
char buff[4096];

fid = open(argv[1],O_WRONLY);
if (fid==-1)
{
perror(argv[1]);
exit(1);
}

while (fgets(buff,4096,stdin)!=NULL)
{
write(fid,buff,strlen(buff));
}

close(fid);
}

阅读全文

与clinux文件读写相关的资料

热点内容
二级开发者还有哪些app 浏览:241
app充值请联系itunes 浏览:678
矢量app和cdr哪个好 浏览:85
系统文件坏了如何修复 浏览:20
键盘系统文件误删 浏览:738
白金英雄坛所有版本 浏览:842
ps文件转hsj 浏览:382
哪个网站电影 浏览:490
ps4游戏文件格式名称 浏览:290
caxa教程2007 浏览:832
新点是什么小说网站 浏览:753
魔兽世界冰封王座3版本转换器 浏览:418
苹果3dtouch软件 浏览:979
qq视频在哪个文件夹里面 浏览:740
请帖制作网站java源码 浏览:257
自己的网站怎么做兼职 浏览:608
医院基础数据是什么 浏览:744
为什么数据线没有typec接口 浏览:39
苹果手机文件管家 浏览:187
qq头像男生水里 浏览:633

友情链接