c - 如何获取内存中缓冲区的文件描述符?

标签 c

如果我有一个包含文件数据的缓冲区,我如何从中获取文件描述符? 这是一个源自how to untar file in memory的问题

最佳答案

我写了一个简单的示例如何将文件描述符制作到内存区域:

#include <unistd.h>
#include <stdio.h> 
#include <string.h> 

char buff[]="qwer\nasdf\n";

int main(){
  int p[2]; pipe(p);

  if( !fork() ){
    for( int buffsize=strlen(buff), len=0; buffsize>len; )
      len+=write( p[1], buff+len, buffsize-len );
    return 0;
  }

  close(p[1]);
  FILE *f = fdopen( p[0], "r" );
  char buff[100];
  while( fgets(buff,100,f) ){
    printf("from child: '%s'\n", buff );
  }
  puts("");
}

关于c - 如何获取内存中缓冲区的文件描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1558772/

相关文章:

c - 如何读取txt文件的部分内容

c - 两个 union 的算术,未定义的行为?

c - 如何在 C 中使用 base-16 整数

c - 问题 : char d = -1 printf ("%u", d);为什么输出不是255

c - Haskell Z3 api 的段错误

python将结构和指针传递给c函数以进行输入和输出

c++ - 什么是 RDS 或可靠数据报套接字

c++ - 如何计算对此函数的递归调用以及正确的答案是什么?

c - 将文件读入结构

c - uint64_t 的安全低 32 位掩码