⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileio.c

📁 这是韩国EQUATOR公司提供的DEMO程序
💻 C
字号:
/**
*** Copyright (c) 2001 Equator Technologies, Inc.
**/

#include <stdio.h>
#include <eti/types.h>

/* Make testfile on a local directory (e.g. /usr/tmp) to increase speed */
#define TESTFILE "testfile.bin"

#define WIDTH (8*1024)
#define HEIGHT (1)

#define ALIGN 8
#define RESTRICT restrict

int main() {
  unsigned int i;
  unsigned char * RESTRICT ptr, * RESTRICT ptr_orig;
  unsigned char * RESTRICT ptr2, * RESTRICT ptr2_orig;
  unsigned long width=WIDTH, height = HEIGHT;
  unsigned long size = WIDTH*HEIGHT;
  FILE *fp;
  int result;

  printf("hello world. MAP CPU id = 0x%x\n", hmpv_read_cpuid()); 

  ptr = (unsigned char *)malloc(size + ALIGN);
  if (ptr == NULL) {
    printf("malloc() for ptr failed.\n");
    exit(1);
  }
  ptr_orig = ptr;
#if ALIGN
  ptr = (unsigned char *)(((unsigned long)ptr_orig + (ALIGN-1)) & ~(ALIGN-1));
#endif

  ptr2 = (unsigned char *)malloc(size + ALIGN);
  if (ptr2 == NULL) {
    printf("malloc() for ptr2 failed.\n");
    exit(1);
  }
  ptr2_orig = ptr2;
#if ALIGN
  ptr2 =(unsigned char *)(((unsigned long)ptr2_orig + (ALIGN-1)) & ~(ALIGN-1));
#endif
      
  /* Initialize 'write' data to some known value */
  {
    unsigned long * RESTRICT lp = (unsigned long *)ptr;
    unsigned long * RESTRICT lp2 = (unsigned long *)ptr2;
    for(i=0; i<size/4; i++) {
      lp[i] = (unsigned long)(i % 0x81);
      lp2[i] = ~0x0;
    }
  }

  /* Write file */
  fp = fopen(TESTFILE, "wb");
  if (fp == NULL) {
    printf("fopen() [write] failed\n");
    exit(1);
  }

  result = fwrite(ptr, width, height, fp);
  if (result != height) {
    printf("fwrite() failed.\n");
    exit(1);
  }

  result = fclose(fp);
  if (result == EOF) {
    printf("fclose() [write] failed.\n");
    exit(1);
  }

  /* Read back */
  fp = fopen(TESTFILE, "rb");
  if (fp == NULL) {
    printf("fopen() [read] failed.\n");
    exit(1);
  }

  result = fread(ptr2, width, height, fp);
  if (result != height)  {
    printf("fread() failed.\n");
    exit(1);
  }

  result = fclose(fp);
  if (result == EOF) {
    printf("fclose() [read] failed.\n");
    exit(1);
  }

  /* Compare */
  if (memcmp(ptr, ptr2, size) == 0) 
    printf("Compare was successful.\n");
  else 
    printf("Compare failed.  read data different that write data.\n");

  printf("goodbye world.\n"); 

  /* Cleanup */
  free(ptr_orig);
  free(ptr2_orig);

  exit(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -