주어진 파일 설명자가있는 파일의 오프셋에서 일부 데이터를 pwrite
에 보내려고합니다. 내 데이터는 두 개의 벡터로 저장됩니다. 하나는 unsigned long
s이고 다른 하나는 char
입니다. 부호없는 long에서 void *로 캐스팅하는 방법?
unsigned long
들과
char
의를 나타내는 비트 시퀀스를 가리키는
void *
구축을 생각하고, 축적 된 크기와 함께
pwrite
에 전달합니다. 하지만
unsigned long
을
void*
번으로 캐스팅 할 수 있나요? (나는 그 다음 문자를 알아낼 수 있다고 생각한다). 여기에 내가 할 노력하고있어 무엇 :
void writeBlock(int fd, int blockSize, unsigned long offset){
void* buf = malloc(blockSize);
// here I should be trying to build buf out of vul and vc
// where vul and vc are my unsigned long and char vectors, respectively.
pwrite(fd, buf, blockSize, offset);
free(buf);
}
을 또한, 당신이 내 위의 생각은 좋지 않다 생각한다면, 나는 제안을 읽을 수있을 것입니다. 그것은 다음과 같은 코드를 사용하여 캐스팅 될 수
설명 할 수 있습니다. –
-1로 무슨 일이 벌어지고 있습니까? +1 – TravisG
답변 해 주셔서 감사합니다. 나에게 남은 유일한 문제는 unsinged longs와 chars의 조합을 필요로하고 buf를 효율적으로 관리해야한다는 것을 감안할 때 buf를 빌드하는 방법이다. 따라서 buf를 빌드 한 다음 입출력을 최소화하기 위해 pwrite에 전달해야한다. – Pirooz