尝试连接字符串时出现分段错误。代码的目标是创建1000个文件,每个文件的名称都增加hw7-1.data,hw7-2.data等,直到您到达hw7-999.data。它应该比我做的更微不足道,它的唯一原因就是目标字符串超出范围,但我只是没有看到它。我知道我还有一些额外的东西,但除此之外,我不明白为什么它会在第一个strcat上进行分割。任何想法为t使用strcat()的分段错误
的输出是:
这里
波段故障
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/stat.h>
int main(void)
{
int x;
char* number;
number=malloc(10);
char* filename;
filename=malloc(100);
char* end;
end=malloc(10);
for (x=0; x<1000; x++)
{
filename="./hw7-";
sprintf(number, "%d", x);
printf("%s\n", number);
printf("Here \n");
strcat(filename,"1");
printf("Here \n");
strcat(filename,".data");
printf("Here \n");
int fd2 = open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IRGRP | S_IROTH);
}
}
'文件名=“./ HW7 - ”'没有做什么,你认为它。 –
''filename =“./ hw7 - ”;' - >'strcpy(filename,“./hw7 - ”);' – BLUEPIXY
''''''''''''''''' – Downvoter