Wczytywanie znakow do bufora

0

Witam...Chce wczytywać znaki z pliku znak po znaku i sprawdzać czy jest z kodu ascii...ale napotykam problem..Robie coś głupiego w tym kodzie?

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main()
{
	int dsc = open("test.txt", O_RDONLY);
	int buf[1];
	int rd;
	
	while((rd = read(dsc,buf,1)) != 0)
	{
		if(!isascii(buf[0]))
		{
			printf("Plik nie jest tekstowy");
			exit(1);
		}
	}
	printf("plik jest tekstowy");
	getch();
	exit(0);
} 
0

read zwraca -1 w przypadku błędu, sprawdzaj czy wynik funkcji == 1. Poza tym, pisz dokladniej z czym masz problem, "napotykam problem" nie mówi absolutnie nic. Problem ze zrozumieniem działania? Z kompilacją? Z wykonaniem programu?

0

no jak skompiluję i odpalę program to pisze, że plik nie jest tekstowy - chociaż jest...nie wiem, czy źle przekazuje bufor do isascii() i czy moge wczytywać po jednym znaku...?

0

Uzywaj strace, aby się połapać gdzie tkwi błąd.

$ strace program.out

Zmień typ bufora na char i powinno chodzić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1