我需要你一個小問題。 我嘗試讀取一個文件並根據我的宏的值顯示他的內容(如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