정수를 포함하는 이진 파일을 이진 형식으로 읽으려고합니다. fopen() 등이 아닌 open() 및 read() 함수를 사용해야합니다.open() 및 read()를 사용하여 C에서 이진 정수 파일 읽기
파일을 열어 읽으려고하지만 내 출력에 이진 기호가 표시됩니다.
char buffer[sizeof(int)];
int file1;
int bytesRead;
file1 = open(argv[1], O_RDONLY);
if(file1 == -1)
{
printf("unable to open file\n");
exit(1);
}
while((bytesRead = read(file1, &buffer, sizeof(buffer))))
{
printf("%d\n", buffer);
}
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
입력 및 출력의 예를 들려 줄 수 있습니까?나는'% d'을 사용할 때 정상적인 숫자 출력 이외의 것을 어떻게 얻을 수 있는지 잘 모르겠다. (틀림없이 원하는 숫자가 아니지만 항상 숫자 여야 함). –
'printf'에 대한 포인터를 전달합니다. 'buffer'는'int'이어야하고, 나머지는 괜찮습니다. – mafso
성능상의 이유로 더 큰 버퍼를'read' (일반적으로 4Kbytes 또는 16Kbytes)에 전달하고 * partial * reads를 관리해야합니다. –