我有下一個情況我有一個循環從串口讀取gprs中的數據,並且這個數據存儲在名爲c的char緩衝區中,但是在我需要清理緩衝區之前只打印來自我的gprs而不是之前發送的命令。 我的代碼:在c中清理char緩衝區
while(ciclo)
{
c=data[i];
i++;
if(c != '\0')
{
write(tty_fd,&c,1);
}
else
{
ciclo = false;
}
}
ciclo = true;
//int veces = 0;
//here I need clean c var
while(ciclo)
{
nanosleep((struct timespec[]){{0, INTERVAL_MS}}, NULL);
//veces++;
//printf("durmio 0,5 por %i vez \n",veces);
fflush(&c);
if(read(tty_fd,&c,1)>0)
{
write(STDOUT_FILENO,&c,1);
//append(respuesta,c);
//printf("respuesta %s",respuesta);
}
else
{
ciclo = false;
}
}
我試着用fflush和fpurge但我無法弄清楚。
在讀入緩衝區之前,您不需要清除緩衝區。 'read()'會覆蓋所有內容。 – Barmar
「fflush」的參數應該是像stdout這樣的流,而不是緩衝區地址。 – Barmar