Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change parameters order for msg_file_read, msg_file_write and in all their internal...
[simgrid.git] / examples / msg / io / file_unlink.c
index 43a54fc..a604a18 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2008-2010, 2012-2013. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -30,46 +30,58 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(io_file,
 int host(int argc, char *argv[])
 {
   msg_file_t file = NULL;
-  s_msg_stat_t stat;
-  void *ptr = NULL;
-  char* mount = bprintf("/home");
-  double write;
+  char* mount = xbt_strdup("/home");
+  sg_storage_size_t write;
 
   // First open
   XBT_INFO("\tOpen file '%s'",FILENAME1);
-  file = MSG_file_open(mount,FILENAME1,"rw");
-
-  // Print stat
-  MSG_file_stat(file,&stat);
-  XBT_INFO("\tFile stat %s Size %.1f",file->name,stat.size);
-  MSG_file_free_stat(&stat);
+  file = MSG_file_open(mount,FILENAME1, NULL);
 
   // Unlink the file
-  XBT_INFO("\tUnlink file '%s'",file->name);
+  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,"rw");
-
-  // Print stat
-  MSG_file_stat(file,&stat);
-  XBT_INFO("\tFile stat %s Size %.1f",file->name,stat.size);
-  MSG_file_free_stat(&stat);
+  file = MSG_file_open(mount,FILENAME1, NULL);
 
   // Write into the new file
-  write = MSG_file_write(ptr,100000,sizeof(char*),file);  // Write for 100Ko
-  XBT_INFO("\tHaving write %.1f \ton %s",write,file->name);
-
-  // Print the stat
-  MSG_file_stat(file,&stat);
-  XBT_INFO("\tFile stat %s Size %.1f",file->name,stat.size);
-  MSG_file_free_stat(&stat);
+  write = MSG_file_write(file,100000);  // Write for 100Ko
+  XBT_INFO("\tHave written %zu on %s",write,file->fullname);
 
   // Close the file
-  XBT_INFO("\tClose file '%s'",file->name);
+  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;
@@ -84,7 +96,7 @@ int main(int argc, char **argv)
   MSG_function_register("host", host);
   unsigned long nb_hosts = xbt_dynar_length(hosts);
   XBT_INFO("Number of host '%lu'",nb_hosts);
-  char* name_host = bprintf("0");
+  char* name_host = xbt_strdup("0");
   MSG_process_create( name_host, host, NULL, xbt_dynar_get_as(hosts,0,msg_host_t) );
   free(name_host);
 
@@ -92,7 +104,6 @@ int main(int argc, char **argv)
 
   res = MSG_main();
   XBT_INFO("Simulation time %g", MSG_get_clock());
-  MSG_clean();
   if (res == MSG_OK)
     return 0;
   else