我需要你一个小问题。 我尝试读取一个文件并根据我的宏的值显示他的内容(如fonction“cat”)。 与我的BUFF_SIZE 4096我显示字符串容易,但是当我把BUFF_SIZE 1,我的程序显示所有行的第一个字符。 因为我在我的个人电脑上,所以我不能确定我的代码是100%,但如果你确实需要它,我明天就可以给你。 对于我的问题,我认为我必须做一些类似功能的strdup,但我真的不知道我可以包括它在我的代码C - 显示一个低字符的字符串
#define BUFF_SIZE 4096
char *my_function(const int a)
{
static int i;
static char **str;
static int ret;
static char *buff[BUFF_SIZE];
static int j;
i = 0;
j = 0;
str = malloc(BUFF_SIZE * sizeof(char));
while ((ret =read(a, buff, BUFF_SIZE)) > 0)
{
while (buff[i] != '\0')
{
str[j] = buff[i];
i++;
j++;
}
return (str);
}
free(str);
}
对不起,我大概英语
(a,buff,BUFF_SIZE)会返回一个int吗?怎么会这样? – JoeC
'str = malloc(BUFF_SIZE * sizeof(char));'没有分配足够的内存;使用'海峡=的malloc(BUFF_SIZE *的sizeof海峡[0]);' – ensc
我忘了改读,我有我的编辑的消息是RET =阅读(一,浅黄色,BUFF_SIZE) – Thebeginner