/*********************************************************** * sc_link * ************************************************************ * Description: the c_module for reading and writing a string from a file * * * Created by: kave eshghi * * At: Monday December 14 1992 * ***********************************************************/ /* INCLUDES */ /* DECLARATIONS */ int register_module(char *module_name); int register_function(int module_number, char *function_name, function_type function, void *data); void register_generic(int module_number, generic_function function); extern int errno; extern char *user_name; int module_functor; void file_term(module_ptr agent,term_ptr term) { switch(term->functor) { case READ: { char *file_name=term->argument_array[0]->const_string;; term_ptr ref=term->argument_array[1]; FILE* fp=fopen(file_name,"r"); char buffer[1000]; char *st; term_ptr message=term_template("ns2"); free(message->argument_array[0]); message->term_type=TUPLE; message->argument_array[0]=copy_term(ref); if (fp!=NULL) { fgets(buffer,1000,fp); st=copy_string(buffer); fclose(fp); } else return; message->argument_array[1]->const_string=st; send_message(INFORM,agent->functor,module_functor,message); free_term(message); } break; } } void file_init(int request_number) { int i; if (request_number==MODULE_INIT) { module_functor=register_module("file_handler"); register_generic(module_functor,file_term); } }