#include
#include
int main()
{
FILE *fp = fopen("myfile", "w");
if (!fp){
printf("fopen error!\n");
}
const char *msg = "hello world!\n";
int count = 5;
while (count--){
fwrite(msg, strlen(msg), 1, fp);
}
fclose(fp);
return 0;
}
在c语言中我们从一个文件中读出数据使用的是fread函数:
#include
#include
int main()
{
FILE *fp = fopen("myfile", "r");
if (!fp){
printf("fopen error!\n");
}
char buf[1024];
const char *msg = "hello world!\n";
while (1){
//注意返回值和参数,此处有坑,仔细查看man手册关于该函数的说明
ssize_t s = fread(buf, 1, strlen(msg), fp);
if (s > 0){
buf[s] = 0;
printf("%s", buf);
}
if (feof(fp)){
break;
}
}
fclose(fp);
return 0;
}
命令 | 打开方式 |
---|---|
r | 以只读方式打开该文件,要求文件必须存在 |
r+ | 以可读可写方式打开该文件,要求文件必须存在 |
w | 以可写的方式打开该文件,要求文件必须存在 |
w+ | 以可读可写的方式打开文件,若文件存在则直接进行读或写,若文件不存在则创建 |
a | 以追加的方式打开文件,若文件不存在则创建 |
a+ | 以可读可追加的方式打开文件,若文件不存在则创建 |
#include
#include
#include
#include
#include
#include
int main()
{
int fd = open("myfile", O_RDONLY);
if (fd < 0){
perror("open");
return 1;
}
const char *msg = "hello bit!\n";
char buf[1024];
while (1){
ssize_t s = read(fd, buf, strlen(msg));//类比write
if (s > 0){
printf("%s", buf);
}
else{
break;
}
}
close(fd);
return 0;
}
#include
#include
#include
#include
#include
#include
int main()
{
umask(0);
int fd = open("myfile", O_WRONLY | O_CREAT, 0644);
if (fd < 0){
perror("open");
return 1;
}
int count = 5;
const char *msg = "hello bit!\n";
int len = strlen(msg);
while (count--){
write(fd, msg, len);//fd: 后面讲, msg:缓冲区首地址, len: 本次读取,期望写入多少个字节的数
//据。 返回值:实际写了多少字节数据
}
close(fd);
return 0;
}
#include
#include
#include
#include
#include
int main()
{
char buf[1024];
ssize_t s = read(0, buf, sizeof(buf));
if (s > 0){
buf[s] = 0;
write(1, buf, strlen(buf));
write(2, buf, strlen(buf));
}
return 0;
}
#include
#include
#include
#include
int main()
{
int fd = open("myfile", O_RDONLY);
if (fd < 0){
perror("open");
return 1;
}
printf("fd: %d\n", fd);
close(fd);
return 0;
}
#include
#include
#include
#include
int main()
{
close(0);
//close(2);
int fd = open("myfile", O_RDONLY);
if (fd < 0){
perror("open");
return 1;
}
printf("fd: %d\n", fd);
close(fd);
return 0;
}
#include
#include
#include
#include
#include
int main()
{
close(1);
int fd = open("myfile", O_WRONLY | O_CREAT, 00644);
if (fd < 0){
perror("open");
return 1;
}
printf("fd: %d\n", fd);
fflush(stdout);
close(fd);
exit(0);
}