#include <stdio.h>
#define MAXSIZE 10
int main()
{
char buf[MAXSIZE], patten[MAXSIZE];
int n;
fgets(buf,MAXSIZE,stdin); //size MAXSIZE-1
if((n = read(0,buf,MAXSIZE-1)) < 0) //size MAXSIZE-1
return -1;
buf[n]='\0';
snprintf(patten, sizeof(patten), "%%%ds", MAXSIZE);
scanf(patten,buf); //size MAXSIZE-1
}
#define MAXSIZE 10
int main()
{
char buf[MAXSIZE], patten[MAXSIZE];
int n;
fgets(buf,MAXSIZE,stdin); //size MAXSIZE-1
if((n = read(0,buf,MAXSIZE-1)) < 0) //size MAXSIZE-1
return -1;
buf[n]='\0';
snprintf(patten, sizeof(patten), "%%%ds", MAXSIZE);
scanf(patten,buf); //size MAXSIZE-1
}
(gdb)x/10c buf
0x7fffffffe250: 49'1' 50 '2' 51 '3' 52 '4' 53 '5' 54 '6' 55 '7' 56 '8'
0x7fffffffe258: 57'9' 0 '\000'