char *filename;打开文件的指针?
时间: 2024-03-26 10:41:09 浏览: 59
char *filename不是打开文件的指针,它是一个指向字符类型的指针,用于存储文件名。在这个程序中,filename指向要打开的文件的名称,它的类型是char*,表示指向一个字符数组的指针。在使用filename打开文件时,需要将其作为参数传递给open函数,以指示要打开的文件名。例如,可以使用open函数打开一个名为"test.txt"的文件,语句如下:
```
int fd = open("test.txt", O_RDONLY);
```
在这个语句中,"test.txt"就是文件名,它是一个字符串常量。可以将文件名存储在指向字符类型的指针中,然后将该指针作为参数传递给open函数,如下所示:
```
char *filename = "test.txt";
int fd = open(filename, O_RDONLY);
```
在这个语句中,filename指向字符串"test.txt",然后将该指针作为参数传递给open函数,以打开文件。
相关问题
char *filename;打开文件名的指针?
是的,char *filename是一个指向字符类型的指针,用于存储文件名。在C语言中,字符串是以字符数组的形式存储的,数组的首地址可以通过指向字符类型的指针来表示。在这个程序中,filename指向一个存储文件名的字符数组,通过指针操作可以访问数组中的每个元素,从而获取文件名。在使用filename打开文件时,需要将其作为参数传递给open函数,以指示要打开的文件名。因此,可以说char *filename是打开文件名的指针。
* @Filename: ex801.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: File Character Reading and Writing */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char *argv[]){ /*(1)声明函数及变量*/ int writeToFile(char *str, char *fileName, char *mode); char str[100]; char fileName[] = "ex801.txt"; /*(2)获取键盘输入字串*/ fgets(str, 100, stdin); //gets(str); //将回车看作字串输入结束标志,字串中可以有空格 //scanf("%s", str); //将空格看作字串输入结束标志,字串中不能有空格 /*(3)将字串写入文件*/ int charNum = writeToFile(str, fileName, "w"); if(charNum < 0){ //printf("write error");//用于调试 return -1; } return 0; } /* * 函数名称:writeToFile * 函数功能:将字串写入文件 * 形式参数:char *str,一维字符数组(字符串)首地址 * 形式参数:char *fileName,待写入的文件路径及名称 * 形式参数:char *mode,文件使用方式 * 返 回 值:int型,若文件打开异常,返回 -1;否则返回写入到文件的字符数 */ int writeToFile(char *str, char *fileName, char *mode){ // 请编程实现本函数 }
这是一个C语言程序,用于将用户从键盘输入的字符串写入到文件中。程序分为主函数main和写入文件函数writeToFile两部分。
主函数中声明了需要用到的函数和变量,获取键盘输入的字符串,调用写入文件函数writeToFile将字符串写入到文件中。
写入文件函数writeToFile的作用是将字符串写入到指定文件中,并返回写入到文件的字符数。该函数需要三个参数:字符串指针、文件名和文件使用方式。函数中使用fopen打开指定文件,使用fwrite将字符串写入到文件中,最后使用fclose关闭文件。
下面是完整的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int writeToFile(char *str, char *fileName, char *mode);
int main(int argc,char *argv[]){
int writeToFile(char *str, char *fileName, char *mode);
char str[100];
char fileName[] = "ex801.txt";
fgets(str, 100, stdin);
int charNum = writeToFile(str, fileName, "w");
if(charNum < 0){
printf("write error");
return -1;
}
return 0;
}
int writeToFile(char *str, char *fileName, char *mode){
FILE *fp;
int charNum;
fp = fopen(fileName, mode);
if(fp == NULL){
return -1;
}
charNum = fwrite(str, sizeof(char), strlen(str), fp);
fclose(fp);
return charNum;
}
```
阅读全文