> 백엔드 개발 > C++ > 본문

C에서 FILE*을 사용하여 메모리 버퍼에 어떻게 쓸 수 있나요?

Patricia Arquette
풀어 주다: 2024-11-01 14:10:03
원래의
637명이 탐색했습니다.

How Can I Write to a Memory Buffer Using a FILE* in C?

FILE*을 통해 메모리 버퍼에 쓰기

이 질문은 메모리 버퍼를 FILE으로 생성할 수 있는 가능성을 탐구합니다. TiXml이 XML을 FILE에 인쇄할 수 있지만 메모리 버퍼에 직접 인쇄할 수는 없는 상황에서 발생합니다.

POSIX 솔루션

이 문제에 대한 한 가지 해결책은 POSIX 함수 fmemopen 또는 open_memstream. 두 함수 모두 메모리를 FILE 설명자로 사용할 수 있지만 의미가 다릅니다.

fmemopen은 지정된 크기의 메모리 버퍼를 생성하고 이를 FILE 스트림과 연결합니다. FILE에 기록된 데이터는 메모리 버퍼에 저장됩니다.

open_memstream은 파이프를 생성하고 이를 FILE 스트림과 연결합니다. FILE에 기록된 데이터는 파이프 버퍼에 기록됩니다. 이 접근 방식은 데이터 크기를 미리 알 수 없는 상황에 더 적합합니다.

사용 예:

다음은 fmemopen을 사용하여 FILE*에 대한 메모리 버퍼를 생성하는 예입니다.

<code class="c">#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main() {
    // Create a 1024-byte memory buffer
    char buffer[1024];
    FILE *fp = fmemopen(buffer, sizeof(buffer), "w");

    // Write some data to the buffer
    fputs("Hello, world!", fp);
    fclose(fp);

    // Read the data back from the buffer
    rewind(fp);
    char readBuffer[1024];
    fread(readBuffer, sizeof(char), 1024, fp);

    printf("%s", readBuffer);

    return 0;
}</code>
로그인 후 복사

위 내용은 C에서 FILE*을 사용하여 메모리 버퍼에 어떻게 쓸 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!