hmain.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef H_MAIN_H_
  2. #define H_MAIN_H_
  3. #include "hplatform.h"
  4. #include "hdef.h"
  5. typedef struct main_ctx_s {
  6. pid_t oldpid; // getpid_from_pidfile
  7. pid_t pid; // getpid
  8. char run_path[MAX_PATH];
  9. char program_name[MAX_PATH];
  10. int argc;
  11. int arg_len;
  12. char** os_argv;
  13. char** save_argv;
  14. int envc;
  15. int env_len;
  16. char** os_envp;
  17. char** save_envp;
  18. char confile[MAX_PATH]; // default etc/${program}.conf
  19. char pidfile[MAX_PATH]; // default logs/${program}.pid
  20. char logfile[MAX_PATH]; // default logs/${program}.log
  21. keyval_t arg_kv;
  22. keyval_t env_kv;
  23. void* confile_parser; // deprecated
  24. } main_ctx_t;
  25. extern main_ctx_t g_main_ctx;
  26. int main_ctx_init(int argc, char** argv);
  27. const char* get_arg(const char* key);
  28. const char* get_env(const char* key);
  29. #ifdef OS_UNIX
  30. void setproctitle(const char* title);
  31. #endif
  32. int create_pidfile();
  33. void delete_pidfile();
  34. pid_t getpid_from_pidfile();
  35. #endif // H_MAIN_H_