[fpc-devel] Questions regarding m68k-atari target

Thorsten Otto admin at tho-otto.de
Tue Feb 1 06:02:27 CET 2022


On Samstag, 29. Januar 2022 16:03:32 CET Tomas Hajny via fpc-devel wrote:
> does it return individual characters, or does it
> return the whole line at once (the latter being the case for other FPC
> targets as far as I know)?

Just tried with a small test program, and the behaviour is a  bit strange. 
Fread(0, count, buf) returns when you either press return, or the count has 
been reached. However, if you press return, the return value does not include 
the CR, nor is that CR written to the buffer.

[code]
int main(void)
{
	char buf[10];
	long count;
	long i;
	
	count = Fread(0, sizeof(buf), buf);
	printf("count: %ld\n", count);
	for (i = 0; i < count; i++)
		printf("%02x ", (unsigned char)buf[i]);
	printf("\nPress key\n");
	Cnecin();
	return 0;
}
[/code]

The Window ReadFile function behaves totally differently there. It only 
returns when you press enter, and the buffer and count includes a CR/LF.

[code]
int main(void)
{
	long res;
	long i;
	char buf[10];
	DWORD outcount;

	res = ReadFile(GetStdHandle(STD_INPUT_HANDLE), buf, sizeof(buf), 
&outcount, NULL);
	printf("res: %ld, count: %ld\n", res, (long)outcount);
	for (i = 0; i < outcount; i++)
		printf("%02x ", (unsigned char)buf[i]);
	return 0;
}
[/code]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20220201/1cf33648/attachment.htm>


More information about the fpc-devel mailing list