char *readall(int fd,size_t *s_return)/*free result*/
	char *out=0 ;ssize_t s;size_t len=0
	while(1)
		out=realloc(out,len+512)
		s=read(fd,out+len,512);if(s<0)break
		else if(s==0)break
		else len+=s
	if(s_return)*s_return=len
	out=realloc(out,len+1)
	out[len]='\0';return out
void writeall(int fd,char *buf,size_t s)
	while(s>=512)
		ssize_t len=write(fd,buf,512);if(len<0)break
		else {s-=len;buf+=len;}
	if(s)write(fd,buf,s)

char *freadline(char *buf,int fdi,char *end_io/*init. to {0,0}*/)
	if(buf)free(buf);end_io[0]=end_io[1]
	buf=malloc(0x10);size_t len=0;ssize_t size1;char c;while(1)
		c=0;size1=read(fdi,&c,1);if(size1<0)break;else if(size1==0)break
		if(c=='\r'){end_io[1]=c;break;};
		else if(c=='\n'){if(len==0&&end_io[0]=='\r')end_io[0]=1;else {end_io[1]=c;break;}}
		buf[len]=c;len+=1;if(len%0x10==0)buf=realloc(buf,len+0x10)
	if(c==0)end_io[1]=0
	if(c||len>0);else {free(buf);buf=NULL;return buf;}
	buf=realloc(buf,len+0x1);buf[len]=0;return buf

#define read_int_q(fd) ({int macres;read(fd,&macres,sizeof(int));macres;})
#define write_int_q(fd,val) ({int macres=val;write(fd,&macres,sizeof(int));macres;})
