X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0d926831703326eda8eca16f898e892466d8d16a..a6f00a784a0d052de2001804276ceee8e43a6334:/examples/msg/io/file.c diff --git a/examples/msg/io/file.c b/examples/msg/io/file.c index 69e45db4fa..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,23 +32,38 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(io_file, int host(int argc, char *argv[]) { - m_file_t file; - char* mount = bprintf("C:"); + 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); - file = MSG_file_open(mount,"test.txt","rw"); - XBT_INFO("Host '%s' open %p",MSG_host_get_name(MSG_host_self()), file); + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHaving read %zu \ton %s",read,file->name); - size_t read = MSG_file_read(mount,NULL,0,0,file); - XBT_INFO("Host '%s' read %zu", MSG_host_get_name(MSG_host_self()), read); + write = MSG_file_write(ptr,100000,sizeof(char*),file); // Write for 100Ko + XBT_INFO("\tHaving write %zu \ton %s",write,file->name); - size_t write = MSG_file_write(mount,NULL,0,0,file); - XBT_INFO("Host '%s' write %zu", MSG_host_get_name(MSG_host_self()), write); + read = MSG_file_read(ptr,10000000,sizeof(char*),file); // Read for 10Mo + XBT_INFO("\tHaving read %zu \ton %s",read,file->name); - int res = MSG_file_stat(mount,0,NULL); - XBT_INFO("Host '%s' stat %d",MSG_host_get_name(MSG_host_self()), res); + MSG_file_stat(file,&stat); + XBT_INFO("\tFile %s Size %d",file->name,(int)stat.size); - res = MSG_file_close(mount,file); - XBT_INFO("Host '%s' close %d",MSG_host_get_name(MSG_host_self()), res); + XBT_INFO("\tClose file '%s'",file->name); + MSG_file_close(file); free(mount); return 0;