#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main() {
FILE *fileptr;
char filechar[40];
int siz;
printf("Enter file name : ");
scanf("%s", filechar);
printf("please enter size");
scanf("%d", siz);
fileptr = fopen(filechar, "a+");
ftruncate(fileno(fileptr), siz);
fclose(fileptr);
return 0;
}
我试图创建一个程序供用户选择以创建文件名和文件大小
运行时,即使使用fseek(fileptr, siz, SEEK_SET)
,也会遇到细分错误错误。
答案 0 :(得分:2)
您遇到了细分错误,因为您将siz
的值传递给了scanf()
而不是其地址给转换说明符%d
。为避免此类错误,应在strct模式下进行编译:{{1}}。
还有其他问题:
gcc -Wall -Werror
。long
的最大大小并使用更大的缓冲区。filechar
和scanf()
的返回值。这是修改后的版本:
fopen