+ options_parse(argc, argv);\r
+\r
+ memc= memcached_init(NULL);\r
+\r
+ if (opt_servers)\r
+ parse_opt_servers(memc, opt_servers);\r
+ else\r
+ parse_opt_servers(memc, argv[--argc]);\r
+\r
+ while (optind < argc) \r
+ {\r
+ struct stat sbuf;\r
+ int fd;\r
+ char *ptr;\r
+ ssize_t read_length;\r
+ char *file_buffer_ptr;\r
+\r
+ fd= open(argv[optind], O_RDONLY);\r
+ if (fd < 0)\r
+ {\r
+ fprintf(stderr, "memcp: %s: %s\n", argv[optind], strerror(errno));\r
+ optind++;\r
+ continue;\r
+ }\r
+\r
+ (void)fstat(fd, &sbuf);\r
+\r
+ ptr= rindex(argv[optind], '/');\r
+ if (ptr)\r
+ ptr++;\r
+ else\r
+ ptr= argv[optind];\r
+\r
+ if (opt_verbose) \r
+ {\r
+ static char *opstr[] = { "set", "add", "replace" };\r
+ printf("op: %s\nsource file: %s\nlength: %zu\n"\r
+ "key: %s\nflags: %x\nexpires: %llu\n",\r
+ opstr[opt_method - OPT_SET], argv[optind], (size_t)sbuf.st_size,\r
+ ptr, opt_flags, (unsigned long long)opt_expires);\r
+ }\r
+\r
+ if ((file_buffer_ptr= (char *)malloc(sizeof(char) * sbuf.st_size)) == NULL)\r
+ {\r
+ fprintf(stderr, "malloc: %s\n", strerror(errno)); \r
+ exit(1);\r
+ }\r
+\r
+ if ((read_length= read(fd, file_buffer_ptr, sbuf.st_size)) == -1)\r
+ {\r
+ fprintf(stderr, "read: %s\n", strerror(errno)); \r
+ exit(1);\r
+ }\r
+ assert(read_length == sbuf.st_size);\r
+\r
+ if (opt_method == OPT_ADD)\r
+ rc= memcached_add(memc, ptr, strlen(ptr),\r
+ file_buffer_ptr, sbuf.st_size,\r
+ opt_expires, opt_flags);\r
+ else if (opt_method == OPT_REPLACE)\r
+ rc= memcached_replace(memc, ptr, strlen(ptr),\r
+ file_buffer_ptr, sbuf.st_size,\r
+ opt_expires, opt_flags);\r
+ else\r
+ rc= memcached_set(memc, ptr, strlen(ptr),\r
+ file_buffer_ptr, sbuf.st_size,\r
+ opt_expires, opt_flags);\r
+\r
+ if (rc != MEMCACHED_SUCCESS)\r
+ fprintf(stderr, "memcp: %s: memcache error %s\n", \r
+ ptr, memcached_strerror(memc, rc));\r
+\r
+ WATCHPOINT;\r
+ free(file_buffer_ptr);\r
+ close(fd);\r
+ optind++;\r
+ }\r
+\r
+ memcached_deinit(memc);\r
+\r
+ free(opt_servers);\r
+\r
+ return 0;\r
+}\r
+\r
+void options_parse(int argc, char *argv[])\r
+{\r
+ int option_index= 0;\r
+ int option_rv;\r
+\r
+ static struct option long_options[]=\r