第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用FILE *寫入內(nèi)存緩沖區(qū)?

如何使用FILE *寫入內(nèi)存緩沖區(qū)?

C++ C
慕妹3146593 2019-12-02 10:55:03
有什么方法可以將內(nèi)存緩沖區(qū)創(chuàng)建為FILE *。在TiXml中,它可以將xml打印到FILE *,但是我似乎無法使其打印到內(nèi)存緩沖區(qū)。
查看完整描述

3 回答

?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

有一種使用內(nèi)存作為FILE描述符的POSIX方法:fmemopen或open_memstream,具體取決于您要使用的語義:fmemopen和open_memstream之間的區(qū)別


查看完整回答
反對 回復(fù) 2019-12-02
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊

我猜正確的答案是凱文。但是這里有一個(gè)使用FILE *的技巧。請注意,如果緩沖區(qū)大?。ù颂帪?00000)太小,則會(huì)丟失數(shù)據(jù),因?yàn)樗⑿戮彌_區(qū)時(shí)會(huì)將其寫出。另外,如果程序調(diào)用fflush(),則會(huì)丟失數(shù)據(jù)。


#include <stdio.h>

#include <stdlib.h>


int main(int argc, char **argv)

{

    FILE *f = fopen("/dev/null", "w");

    int i;

    int written = 0;

    char *buf = malloc(100000);

    setbuffer(f, buf, 100000);

    for (i = 0; i < 1000; i++)

    {

        written += fprintf(f, "Number %d\n", i);

    }

    for (i = 0; i < written; i++) {

        printf("%c", buf[i]);

    }

}


查看完整回答
反對 回復(fù) 2019-12-02
?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

我寫了一個(gè)簡單的示例,說明如何創(chuàng)建內(nèi)存文件:


#include <unistd.h> 

#include <stdio.h> 


int main(){

  int p[2]; pipe(p); FILE *f = fdopen( p[1], "w" );


  if( !fork() ){

    fprintf( f, "working" );

    return 0;

  }


  fclose(f); close(p[1]);

  char buff[100]; int len;

  while( (len=read(p[0], buff, 100))>0 )

    printf(" from child: '%*s'", len, buff );

  puts("");

}


查看完整回答
反對 回復(fù) 2019-12-02
  • 3 回答
  • 0 關(guān)注
  • 949 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號