linuxc文件的读写
1. asctime(local)函数,是将struct tm*类型的参数转换成字符串类型,这样,方便fprintf函数将时间按照字符串输出来
2. “w+"是从文件开始写入。所以,每次重写都会覆盖以前的时间。可以使用"a+",在文件后面追加。即,将fp=fopen("time.txt", "w+")改成fp=fopen("time.txt", "a+")
3.有一个网站,可以查找linux的系统api函数
http://linux.die.net/
B. linux系统如何读写属性为c的文件
Linux把外部设备也当成文件来管理,这是继承了Unix一切皆文件的设计思想。
/dev目录下的文件皆外部设备,所以你必须有相应的内核模块来驱动相应的设备,否则此设备无法读写。
你是在测试COM口么?COM口有没有连接测试设备?没有的话,就算有相应的内核模块也是白搭的,就象光有电灯开关,没安装灯泡,你怎么按开关都白搭。
C. 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+
以附加方式打开可读写的文件。若文件不存在,
则会建立该文件,
如果文件存在,
写入的数据会被加到文件尾后,
即文件原先的内容会被保留。
D. linux下c语言 读取文件内容
没测试过,不过问题应该是fgetc这里
fgetc获取到第一个字符,比如第一行的'#'号,然后fgets获取到后面的字符,打印当然就没有第一个字符了,解决方式要么只用fgets,要么把fgetc获取的字符也打印出来
E. 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()
F. linux下如何用C程序读写本地文件
是一样的。如果是同目录则直接写文件名,如果是不同的目录,可以写明路径。
如:
读同目录文件local.txt
fopen("local.txt","r");
读不同目录文件 /home/yourname/otherdir/other.txt
fopen("/home/yourname/otherdir/other.txt","r");
你可以使用pwd命令来获得文件路径
G. 关于linux C的文件读写
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1024
void lower1(char *p)
{
int i,len;
len = strlen(p);
for(i=0;i<len;i++)
if(p[i] >= 'A' && p[i] <= 'Z')
p[i] += 32;
}
int main(void)
{
FILE *fp,*fpw;
char *p;
char buf[MAX],buf1[MAX]="GAME OVER";
int n,m;
fp = fopen("txt","rw");
if(fp == NULL)
{
perror("Fail to open");
exit(1);
}
while((n = fread(buf,sizeof(char),MAX-1,fp)) > 0)
{
buf[n]='\0';
lower1(buf);
printf("%s",buf);
printf("%d",n);
}
rewind(fp);
while((n = fread(buf,sizeof(char),MAX-1,fp)) > 0) //你这里什么意思?你这里有问题
{
fputs(buf,fp);
}
if(n < 0){
perror("Fail to read");
exit(1);
}
fclose(fp);
return 0;
}
顺便,看样子你也知道,读写无法同时进行的,所以,你读万,一定要rewind一下
H. 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);
I. c语言如何读写 linux文本文件
你说的应该是FILE IO吧,建议自己学习下
http://wenku..com/view/6b921360ddccda38376bafb4.html
http://blog.csdn.net/hack_47/archive/2008/12/19/3556211.aspx
你直接搜索Linux file io就可以了
另外,Linux下有一些用于文本操作的工具,你不妨用脚本实现你的操作
祝好运
J. c语言如何读写 linux文本文件
Linux下C语言的文件(fputc,fgetc,fwrite,fread对文件读写操作)
//
fputc 向文件写入字符
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("不能打开文件 ");
exit(0);
}
while ((ch=getchar())!=' ')
fputc( ch, fp );
fclose(fp);
}
-------------
小提示:
fp=fopen("test.txt","w") ,把"w"改为 "a" 可以创建文件并且追加写入内容
exit(0); 需要包含 stdlib.h 头文件,才能使用
//
fgetc 读取字符
#include <stdio.h>
#include <stdlib.h>
main( int argc, char *argv[] )
{
char ch;
FILE *fp;
int i;
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("不能打开文件 ");
exit(0);
}
while ((ch=fgetc(fp))!=EOF)
putchar(ch);
fclose(fp);
}
文件结尾,通过判断 EOF
//
fwrite 的使用
使数组或结构体等类型可以进行一次性读写
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","wb"))==NULL)
{
printf("不能打开文件");
exit(0);
}
printf("请输入信息,姓名 年龄 分数1 分数2 地址: ");
for( i=0;i<2;i++)
{
scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);
fwrite(&stu,sizeof(stu),1,fp1);
}
fclose(fp1);
}
//
fread 的使用
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp1;
int i;
struct student{
char name[10];
int age;
float score[2];
char addr[15];
}stu;
if((fp1=fopen("test.txt","rb"))==NULL)
{
printf("不能打开文件");
exit(0);
}
printf("读取文件的内容如下: ");
for (i=0;i<2;i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %7.2f %7.2f %s ",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
}
fclose(fp1);
}
//
fprintf , fscanf, putw , getw , rewind , fseek 函数
这些函数的话我就不演示了 ,
这些函数基本都一对来使用,例如 fputc 和 fgetc 一起来用.