⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configf.c

📁 RAM Defragmentation tools
💻 C
字号:
/* configf.c - configuration file operations */#include "cvstags.h"CVSTAG(configf,"$Id: configf.c,v 1.14 2005/05/08 23:51:40 knilch Exp $")/* Ramdefrag Configuration File Abstraction Layer *  (c) 2004, 2005 Tobias 'knilch' Jordan <knilch@users.sourceforge.net> * *  Prickle-Prickle, the 16th day of Discord in the YOLD 3170 * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "configf.h"/* * *                     From the Honest Book of Truth * *                  THE BOOK OF EXPLANATIONS, Chapter 1 * */#ifdef HAVE_CONFIG_H#include "config.h"#endif/* todo: portable includes */#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pwd.h>#include <sys/types.h>#include <sys/stat.h>/* *    1. There came one day to Lord Omar, Bull Goose of Limbo, a Messenger * of Our Lady who told him of a Sacred Mound wherein was buried an Honest * Book. * *    2. And the Angel of Eris bade of the Lord: Go ye hence and dig the * Truth, that ye may come to know it and, knowing it, spread it and, * spreading it, wallow in it and, wallowing in it, lie in it and, lying * in the Truth, become a Poet of the Word and a Sayer of Sayings -- an * Inspiration to all men and a Scribe to the Gods. */#include "clierr.h"#include "support.h" /* for gettext */#ifndef PATH_MAX#define PATH_MAX 1024#endif/* *    3. So Omar went forth to the Sacred Mound, which was to the East of * Mullah, and thereupon he worked digging in the sand for five days and * five nights, but found no book. * *    4. At the end of five days and five nights of digging, it came to * pass that Omar was exhausted. So he put his shovel to one side and * bedded himself down on the sand, using as a pillow a Golden Chest he * had uncovered on the first day of his labors. * *    5. Omar slept. */static char * getcfname() {  static char n[PATH_MAX];  char * h = NULL;  struct passwd *p;  if ((h = getenv("HOME")) == NULL) {    if ((p = getpwuid(getuid()))) {      h = p->pw_dir;    } else {      h = ".";      clierr(_("warning: using current directory as configuration directory"));    }  }/* *    6. On the fifth day of his sleeping, Lord Omar fell into a Trance, * and there came to him in the Trance a Dream, and there came to him in * the Dream a Messenger of Our Lady who told him of a Sacred Grove * wherein was hidden a Golden Chest. * *    7. And the Angel of Eris bade of the Lord: Go ye hence and lift the * Stash, that ye may come to own it and, owning it, share it and, sharing * it, love in it and, loving in it, dwell in it and, dwelling in the * Stash, become a Poet of the Word and a Sayer of Sayings - an * Inspiration to all men and a Scribe to the Gods. */  if (access(h, R_OK | W_OK | X_OK) < 0) {    perror("access");    fprintf(stderr, _("%s: can't access home directory `%s'!\n"),	    PACKAGE_NAME, h);    return "";  }#ifdef HAVE_SNPRINTF  snprintf(n, PATH_MAX,#else#warning "no working snprintf! using sprintf, which is prone to buffer overflows!"  sprintf(n,#endif          "%s/%s", h, CFNAME);#undef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE#ifdef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE  )#endif  return n;}/* *    8. But Omar lamented, saying unto the Angel : What is this shit, * man? What care I for the Word and Sayings? What care I for the * Inspiration of all men? Wherein does it profit a man to be a Scribe to * the Gods when the Scribes of the Governments do nothing, yet are paid * better wages? * *    9. And, lo, the Angel waxed in anger and Omar was stricken to the * Ground by an Invisible Hand and did not arise for five days and five * nights. */int readcf(struct my_cnf *c) {  struct stat s;  c->ts = 0;  c->df = "JnYq1-Fg!a|<G.jV3_ry(u";  c->x[0] = 0;  if (stat(getcfname(), &s)) {    /* just for debugging... */#ifdef WALDIS_MUTTER_KOCHT_SCHLECHT    perror("stat");#endif    return 1;  }  c->ts=s.st_mtime;  return 0;}/* *    10. And it came to pass that on the fifth night he dreampt, and in * his Dream he had a Vision, and in this Vision there came unto him a * Messenger of Our Lady who entrusted to him a Rigoletto cigar box * containing many filing cards, some of them in packs with rubber bands * around, and upon these cards were sometimes written verses, while upon * others nothing was written. * *    11. Thereupon the Angel Commanded to Lord: Take ye this Honest Book * of Truth to thine bosom and cherish it. Carry it forth into The Land * and Lay it before Kings of Nations and Collectors of Garbage. Preach * from it unto the Righteous, that they may renounce their ways and * repent. */int writecf(struct my_cnf c) {  FILE *f;  if (!(f = fopen(getcfname(), "w"))) {    clierr(_("can't write configuration file!"));    return 23;  }  fprintf(f,_("# Ramdefrag Configuration File\n# DO NOT edit this manually!\n"));  fprintf(f,"ts %ld\n", c.ts);  fprintf(f,"df '%s'\n", c.df);  fprintf(f,"x [%s]\n", c.x);  fclose(f); /* don't care about the return value */  return 0;}/* *                               Bullshit makes *                              the flowers grow *                             & that's beautiful. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -