X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6d2c3a549e3517efc7ee33733d1c027ae13c52df..e4abd3f271729beeff499da36267bfb274dd1f6d:/examples/msg/io/file.c diff --git a/examples/msg/io/file.c b/examples/msg/io/file.c index ed5ed3afc4..0eb2cb459c 100644 --- a/examples/msg/io/file.c +++ b/examples/msg/io/file.c @@ -4,6 +4,22 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +/** @addtogroup MSG_examples + * + * @subsection MSG_ex_resources Other resource kinds + * + * This section contains some sparse examples of how to use the other + * kind of resources, such as disk or GPU. These resources are quite + * experimental for now, but here we go anyway. + * + * - io/file.c Example with the disk resource + */ + +#define FILENAME1 "./doc/simgrid/examples/platforms/g5k.xml" +#define FILENAME2 "./doc/simgrid/examples/platforms/One_cluster_no_backbone.xml" +#define FILENAME3 "./doc/simgrid/examples/platforms/g5k_cabinets.xml" +#define FILENAME4 "./doc/simgrid/examples/platforms/nancy.xml" + #include #include #include "msg/msg.h" @@ -16,45 +32,63 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(io_file, int host(int argc, char *argv[]) { - m_file_t file; - file = MSG_file_open("test.txt","rw"); - XBT_INFO("Host '%s' open %p",MSG_host_get_name(MSG_host_self()), file); + msg_file_t file = NULL; + s_msg_stat_t stat; + void *ptr = NULL; + char* mount = bprintf("/home"); + double read,write; + + if(!strcmp(MSG_process_get_name(MSG_process_self()),"0")) + file = MSG_file_open(mount,FILENAME1,"rw"); + else if(!strcmp(MSG_process_get_name(MSG_process_self()),"1")) + file = MSG_file_open(mount,FILENAME2,"rw"); + else if(!strcmp(MSG_process_get_name(MSG_process_self()),"2")) + file = MSG_file_open(mount,FILENAME3,"rw"); + else if(!strcmp(MSG_process_get_name(MSG_process_self()),"3")) + file = MSG_file_open(mount,FILENAME4,"rw"); + else xbt_die("FILENAME NOT DEFINED %s",MSG_process_get_name(MSG_process_self())); + + XBT_INFO("\tOpen file '%s'",file->name); - size_t read = MSG_file_read(NULL,0,0,file); - XBT_INFO("Host '%s' read %zu", MSG_host_get_name(MSG_host_self()), read); + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHave read %8.1f on %s",read,file->name); - size_t write = MSG_file_write(NULL,0,0,file); - XBT_INFO("Host '%s' write %zu", MSG_host_get_name(MSG_host_self()), write); + write = MSG_file_write(ptr,100000,sizeof(char*),file); // Write for 100Ko + XBT_INFO("\tHave written %8.1f on %s",write,file->name); - int res = MSG_file_stat(0,NULL); - XBT_INFO("Host '%s' stat %d",MSG_host_get_name(MSG_host_self()), res); + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHave read %8.1f on %s",read,file->name); - res = MSG_file_close(file); - XBT_INFO("Host '%s' close %d",MSG_host_get_name(MSG_host_self()), res); + MSG_file_stat(file,&stat); + XBT_INFO("\tFile stat %s Size %.1f",file->name,stat.size); + MSG_file_free_stat(&stat); + + XBT_INFO("\tClose file '%s'",file->name); + MSG_file_close(file); + + free(mount); return 0; } int main(int argc, char **argv) { - int i,res; - MSG_global_init(&argc, argv); + int i,res; + MSG_init(&argc, argv); MSG_create_environment(argv[1]); - m_host_t *host_table = MSG_get_host_table(); - int number_of_hosts = MSG_get_host_number(); + xbt_dynar_t hosts = MSG_hosts_as_dynar(); MSG_function_register("host", host); - - XBT_INFO("Number of host '%d'",number_of_hosts); - for(i = 0 ; i