当前位置: 首页 > news >正文

高端建站设计/事件营销

高端建站设计,事件营销,河北建设厅网站电话,新手做市场分析的网站unix学习过程中找不到ourhdr.h文件 首先我先来介绍一下什么是ourder.h文件,这就是作者自己写的一个库,比如unix或Linux中unistd.h这就是系统自己的函数库,这些库函数都在/usr/include中,所以我们要想编译含有ourhdr.h的c文件&…

unix学习过程中找不到ourhdr.h文件
首先我先来介绍一下什么是ourder.h文件,这就是作者自己写的一个库,比如unix或Linux中unistd.h这就是系统自己的函数库,这些库函数都在/usr/include中,所以我们要想编译含有ourhdr.h的c文件,必须手动导入库
以下是ourhdr.h的库文件:
/Our own header, to be included after all standard system headers/
#ifndef __ourhdr_h
#define __ourhdr_h
#include <errno.h>/*for definition of errno */
#include <stdarg.h>/ANSI C header file/

#include <sys/types.h> /* required for some of our prototypes /
#include <stdio.h> /
for convenience /
#include <stdlib.h> /
for convenience /
#include <string.h> /
for convenience /
#include <unistd.h> /
for convenience /
#define MAXLINE 4096 /
max line length /
#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
/
default file access permissions for new files /
#define DIR_MODE (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
/
default permissions for new directoris /
typedef void Sigfunc(int); /
for signal handlers /
/
4.3BSD Reno <signal.h> doesn’t define
SIG_ERR */
#if defined(SIG_IGN) && !defined(SIG_ERR)
#define SIG_ERR ((Sigfunc )-1)
#endif
#define min(a,b) ((a) < (b) ? (a) : (b))
#define max(a,b) ((a) > (b) ? (a) : (b))
/
prototypes for our own functions */
char *path_alloc(int ); / {Prog pathalloc} /
int open_max(void); /
{Prog openmax} /
void clr_fl(int, int); /
{Prog setfl} /
void set_fl(int, int); /
{Prog setfl} /
void pr_exit(int); /
{Prog prexit} */
void pr_mask(const char ); / {Prog prmask} */
Sigfunc *signal_intr(int, Sigfunc );/ {Prog signal_intr_function} /
int tty_cbreak(int); /
{Prog raw} /
int tty_raw(int); /
{Prog raw} /
int tty_reset(int); /
{Prog raw} /
void tty_atexit(void); /
{Prog raw} /
#ifdef ECHO /
only if <termios.h> has been included */
struct termios tty_termios(void); / {Prog raw} /
#endif
void sleep_us(unsigned int); /
{Ex sleepus} */
ssize_t readn(int, void , size_t);/ {Prog readn} */
ssize_t writen(int, const void , size_t);/ {Prog writen} /
int daemon_init(void); /
{Prog daemoninit} */
int s_pipe(int ); / {Progs svr4_spipe bsd spipe} */
int recv_fd(int, ssize_t (*func)(int, const void , size_t));
/
{Prog recvfd_svr4 recvfd_43bsd} /
int send_fd(int, int); /
{Progs sendfd_svr4 se dfd_43bsd} */
int send_err(int, int, const char );/ {Prog senderr} */
int serv_listen(const char ); / {Progs servlisten_svr4 servli ten_4 4bsd} */
int serv_accept(int, uid_t ); / {Progs servaccept_svr4 servac ept_4 4bsd} */
int cli_conn(const char ); / {Progs cliconn_svr4 cliconn_4 bsd} */
int buf_args(char *, int (*func)(int, char *));
/
{Prog bufargs} */
int ptym_open(char ); / {Progs ptyopen_svr4 p yopen_44bsd} */
int ptys_open(int, char ); / {Progs ptyopen_svr4 ptyopen_4 bsd} */
#ifdef TIOCGWINSZ
pid_t pty_fork(int *, char *, const struct termios *,
const struct winsize ); / {Prog ptyfork /
#endif
int lock_reg(int, int, int, off_t, int, off_t);
/
{Prog lockreg} /
#define read_lock(fd, offset, whence, len) lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
#define readw_lock(fd, offset, whence, len) lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
#define write_lock(fd, offset, whence, len) lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
#define writew_lock(fd, offset, whence, len) lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
#define un_lock(fd, offset, whence, len) lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)
pid_t lock_test(int, int, off_t, int, off_t);
/
{Prog locktest} */
#define is_readlock(fd, offset, whence, len) lock_test(fd, F_RDLCK, offset, whence, len)
#define is_writelock(fd, offset, whence, len) lock_test(fd, F_WRLCK, offset, whence, len)
void err_dump(const char , …); / {App misc_source} */
void err_msg(const char *, …);
void err_quit(const char *, …);
void err_ret(const char *, …);
void err_sys(const char *, …);
void log_msg(const char , …); / {App misc_source} */
void log_open(const char *, int, int);
void log_quit(const char *, …);
void log_ret(const char *, …);
void log_sys(const char , …);
void TELL_WAIT(void); /
parent/child from {Sec race_condition } /
void TELL_PARENT(pid_t);
void TELL_CHILD(pid_t);
void WAIT_PARENT(void);
void WAIT_CHILD(void);
#endif /
__ourhdr_h */

将这个文件复制放在/usr/include下

在这里插入图片描述

为什么要在这里用sudo那?
因为我试过如果直接vi 然后保存,是会出现无法打开并写入文件的报错
鉴于新手我顺带讲一下windows和ubuntu的之间复制粘贴问题:
以下完美解决:
sudo apt-get autorremove open-vm-tools
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
重启虚拟机
这样直接就可以右键在vim文件中弹出来粘贴
在这里插入图片描述
解决完复制粘贴问题,你就把之前提到的ourhdr.h复制到/usr/include下
其实到这一步解决了80%问题
因为unix那本书里面还有err_sys这个函数,其实这个函数也是作者写的my_err.h头文件中的函数,你要是真想把书上的运行起来,你就在网上找然后继续复制粘贴到/usr/include下
反正我试过一次,没成功,因为太懒了,感觉那个err_sys就实现输出,还不如用printf,反正运行成功了最后

http://www.lbrq.cn/news/469.html

相关文章:

  • 电子商务网站建设的核心/成都网络推广优化
  • 网站登录模版/seo分析师
  • 网站建设 企业观点/营销型网站seo
  • 杭州营销网站制作/武汉seo推广优化
  • 响应式网站用什么语言/seo精灵
  • 企业做门户网站的重要性/帮忙推广的平台
  • java做网站用什么工具/厦门seo专业培训学校
  • 广告网站建设及推广/营销模式有哪些
  • 新冠为什么莫名消失了/南昌seo
  • 建立一个平台需要什么/佛山百度关键词seo外包
  • wordpress group by/杭州seo论坛
  • 网站 要强化内容建设/2023年8月份新冠
  • 建设购物网站的意义/网络营销策划的基本原则
  • 新手设计师接单网站/百度知道网页版
  • wordpress做个人教学网站/百度统计数据
  • app推广营销公司/seo搜索引擎优化案例
  • 怎样学习做网站/开个网站平台要多少钱
  • 网站采集怎么做/品牌推广方案
  • 沈阳公司做网站的/快速排名推荐
  • 网购网站有哪些/品牌推广外包公司
  • Ambiguity-Resolved Waveform Design for Cell-free OFDM-Based ISAC Systems
  • Zara和网易云音乐仿写总结
  • Vue (Official) v3.0.2 新特性 为非类npm环境引入 globalTypesPath 选项
  • 力扣每日一题--2025.7.17
  • LVS实验
  • 【软件开发】主流 AI 编码插件