コード例 #1
0
ファイル: file_unlink.c プロジェクト: apargupta/simgrid
int host(int argc, char *argv[])
{
  msg_file_t file = NULL;
  sg_size_t write;

  // First open
  XBT_INFO("\tOpen file '%s'",FILENAME1);
  file = MSG_file_open(FILENAME1, NULL);

  // Unlink the file
  XBT_INFO("\tUnlink file '%s'",MSG_file_get_name(file));
  MSG_file_unlink(file);

  // Re Open the file wich is in fact created
  XBT_INFO("\tOpen file '%s'",FILENAME1);
  file = MSG_file_open(FILENAME1, NULL);

  // Write into the new file
  write = MSG_file_write(file,100000);  // Write for 100Ko
  XBT_INFO("\tHave written %llu on %s",write,MSG_file_get_name(file));

  // Write into the new file
  write = MSG_file_write(file,100000);  // Write for 100Ko
  XBT_INFO("\tHave written %llu on %s",write,MSG_file_get_name(file));

  // Close the file
  XBT_INFO("\tClose file '%s'",MSG_file_get_name(file));
  MSG_file_close(file);

  return 0;
}
コード例 #2
0
ファイル: file_unlink.c プロジェクト: ricardojrdez/simgrid
int host(int argc, char *argv[])
{
  msg_file_t file = NULL;
  char* mount = xbt_strdup("/home");
  size_t write;

  // First open
  XBT_INFO("\tOpen file '%s'",FILENAME1);
  file = MSG_file_open(mount,FILENAME1);

  // Unlink the file
  XBT_INFO("\tUnlink file '%s'",file->fullname);
  MSG_file_unlink(file);

  // Re Open the file wich is in fact created
  XBT_INFO("\tOpen file '%s'",FILENAME1);
  file = MSG_file_open(mount,FILENAME1);

  // Write into the new file
  write = MSG_file_write(100000,file);  // Write for 100Ko
  XBT_INFO("\tHave written %zu on %s",write,file->fullname);

  // Close the file
  XBT_INFO("\tClose file '%s'",file->fullname);
  MSG_file_close(file);

  xbt_dict_t dict_ls;
  char* key;
  surf_stat_t data = NULL;
  xbt_dict_cursor_t cursor = NULL;

  dict_ls = MSG_file_ls(mount,"./");
  XBT_INFO(" ");XBT_INFO("ls ./");
  xbt_dict_foreach(dict_ls,cursor,key,data){
    if(data) XBT_INFO("FILE : %s",key);
    else     XBT_INFO("DIR  : %s",key);
  }
  xbt_dict_free(&dict_ls);

  dict_ls = MSG_file_ls(mount,"./doc/simgrid/examples/platforms/");
  XBT_INFO(" ");XBT_INFO("ls ./doc/simgrid/examples/platforms/");
  xbt_dict_foreach(dict_ls,cursor,key,data){
    if(data) XBT_INFO("FILE : %s",key);
    else     XBT_INFO("DIR  : %s",key);
  }
  xbt_dict_free(&dict_ls);

  dict_ls = MSG_file_ls(mount,"./doc/simgrid/examples/msg/");
  XBT_INFO(" ");XBT_INFO("ls ./doc/simgrid/examples/msg/");
  xbt_dict_foreach(dict_ls,cursor,key,data){
    if(data) XBT_INFO("FILE : %s",key);
    else     XBT_INFO("DIR  : %s",key);
  }
  xbt_dict_free(&dict_ls);

  free(mount);

  return 0;
}
コード例 #3
0
ファイル: io-file.c プロジェクト: dindon-sournois/simgrid
static int host(int argc, char *argv[])
{
  msg_file_t file = NULL;
  sg_size_t read;
  sg_size_t write;
  msg_storage_t st;
  const char* st_name;

  switch(MSG_process_self_PID()){
  case 1:
    file = MSG_file_open(FILENAME1, NULL);
    MSG_file_dump(file);
    st_name = "Disk4";
    break;
  case 2 :
    file = MSG_file_open(FILENAME2, NULL);
    st_name = "Disk2";
    break;
  case 3 :
    file = MSG_file_open(FILENAME3, NULL);
    st_name = "Disk3";
    break;
  case 4:
    file = MSG_file_open(FILENAME4, NULL);
    st_name = "Disk1";
    break;
  default:
    xbt_die("FILENAME NOT DEFINED %s",MSG_process_get_name(MSG_process_self()));
  }

  const char* filename = MSG_file_get_name(file);
  XBT_INFO("\tOpen file '%s'",filename);
  st = MSG_storage_get_by_name(st_name);

  XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu",
            filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st));

  /* Try to read for 10MB */
  read = MSG_file_read(file, 10000000);
  XBT_INFO("\tHave read %llu from '%s'",read,filename);

  /* Write 100KB in file from the current position, i.e, end of file or 10MB */
  write = MSG_file_write(file, 100000);
  XBT_INFO("\tHave written %llu in '%s'. Size now is: %llu",write,filename, MSG_file_get_size(file));


  XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu",
            filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st));

  /* rewind to the beginning of the file */
  XBT_INFO("\tComing back to the beginning of the stream for file '%s'", filename);
  MSG_file_seek(file, 0, SEEK_SET);

  /* Try to read 110KB */
  read = MSG_file_read(file, 110000);
  XBT_INFO("\tHave read %llu from '%s' (of size %llu)",read,filename, MSG_file_get_size(file));

  /* rewind once again to the beginning of the file */
  XBT_INFO("\tComing back to the beginning of the stream for file '%s'", filename);
  MSG_file_seek(file, 0, SEEK_SET);

  /* Write 110KB in file from the current position, i.e, end of file or 10MB */
  write = MSG_file_write(file, 110000);
  XBT_INFO("\tHave written %llu in '%s'. Size now is: %llu", write,filename, MSG_file_get_size(file));

  XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu",
            filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st));

  if (MSG_process_self_PID() == 1){
    XBT_INFO("\tUnlink file '%s'",MSG_file_get_name(file));
    MSG_file_unlink(file);
  } else {
    XBT_INFO("\tClose file '%s'",filename);
    MSG_file_close(file);
  }
  return 0;
}