X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/782ce0488c03c8b13b2267d198a70d6667176f83..a6f00a784a0d052de2001804276ceee8e43a6334:/examples/msg/io/file.c diff --git a/examples/msg/io/file.c b/examples/msg/io/file.c index c52c2fd905..ed8e91ad8a 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 "/home/user/Install/simgrid/doc/simgrid/examples/platforms/g5k.xml" +#define FILENAME2 "/home/user/Install/simgrid/doc/simgrid/examples/platforms/One_cluster_no_backbone.xml" +#define FILENAME3 "/home/user/Install/simgrid/doc/simgrid/examples/platforms/g5k_cabinets.xml" +#define FILENAME4 "/home/user/Install/simgrid/doc/simgrid/examples/platforms/nancy.xml" + #include #include #include "msg/msg.h" @@ -16,21 +32,40 @@ 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"); + size_t 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); + + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHaving read %zu \ton %s",read,file->name); + + write = MSG_file_write(ptr,100000,sizeof(char*),file); // Write for 100Ko + XBT_INFO("\tHaving write %zu \ton %s",write,file->name); - size_t read = MSG_file_read(NULL,0,0,file); - XBT_INFO("Host '%s' read %ld",MSG_host_get_name(MSG_host_self()),read); + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHaving read %zu \ton %s",read,file->name); - size_t write = MSG_file_write(NULL,0,0,file); - XBT_INFO("Host '%s' write %ld",MSG_host_get_name(MSG_host_self()), write); + MSG_file_stat(file,&stat); + XBT_INFO("\tFile %s Size %d",file->name,(int)stat.size); - int res = MSG_file_stat(0,NULL); - XBT_INFO("Host '%s' stat %d",MSG_host_get_name(MSG_host_self()), res); + XBT_INFO("\tClose file '%s'",file->name); + MSG_file_close(file); - res = MSG_file_close(file); - XBT_INFO("Host '%s' close %d",MSG_host_get_name(MSG_host_self()), res); + free(mount); return 0; } @@ -39,18 +74,17 @@ int main(int argc, char **argv) int i,res; MSG_global_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