
Linux
文章平均质量分 73
木风feng
记录平时遇到的坑与零碎知识点
展开
-
linux fork() 进程树的两种实现方法
Linux fork()进程树的两种实现方法刚完成操作系统的实验一,其中附加题是使用fork()实现一颗满二叉树形态的进程树,觉得好玩,做完之后就记录一下。1. 暴力的做法最简单粗暴的做法,当然就是直接把层数写死啦。例如要创建三层的进程树,就父进程fork()两次,然后在子进程里又fork()两次,这样就有三层了,且最后fork()出来的那层就不再继续生成,直接打印出“我的PI...原创 2018-03-23 20:18:08 · 9135 阅读 · 0 评论 -
nginx+lua set-cookie失败
最近在尝试使用nginx+lua脚本搭建环境,其中需要向客户端埋cookie,但是在lua脚本中使用 ngx.header[“Set-Cookie”]=“xxx” 埋cookie会失败,而直接在nginx.conf中使用 add_header 则能成功,这很奇怪。后面测试了好久,才发现,是因为我在搭环境的时候,为了方便测试,在lua脚本中使用了 ngx.say() 打印debug信息返回到客户端...原创 2019-08-10 22:45:49 · 1817 阅读 · 0 评论 -
git rebase master 分支出现一堆 ^M
最近开发的时候,要 rebase 一个分支到 master 分支,执行完 rebase 之后提示有冲突,vim 查看一下冲突文件,我的妈呀每一行都冲突了,发现我自己版本的代码每一行后面都有个 ^M。想了一下,我这个文件中间有从 windows 平台 rz 到服务器,windows 自动把文本文件的换行方式给改了。。。果断中断 rebase 操作,把自己的文件除去 ^M 后再重新执行 rebase...原创 2019-03-26 19:51:50 · 692 阅读 · 0 评论 -
文件头有三个不可见字符(BOM)
做毕设,下载了个227万数据量的数据集想要测一下算法性能,结果一读文件就出问题,看了一下std::stoull抛出异常,提示invalid parameter。用vim看了一下文件,每行数据以空格隔开,第一个数据就是字符串形式的整数,不应该参数非法。改成strtoull,返回值是0,这表示参数的第一个字符就不是0~9,很奇怪。用vim的命令:set invlist查看不可见字符,也没发现行首有...原创 2019-01-20 12:52:52 · 1167 阅读 · 0 评论 -
最近使用 libcurl 遇到的坑
学艺不精,有待深入学习 Orz1 curl 请求时间超过1s 最近使用 libcurl 调用内网另一台服务器的一个服务,结果过了 1s 才收到返回包,一开始以为是对方服务出问题,结果对方反馈他们压测的结果是 2~3ms 就能返回结果。排查到最后才发现是 libcurl 的坑,差点因为这个将开发方案驳回。 我是使用post请求发送批量数据到对方的服务,而 libcurl 会默认添加一个...原创 2019-01-11 20:33:46 · 3572 阅读 · 0 评论 -
CGI和FastCGI
1 CGI简介CGI,通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。归根结底 CGI就是一个接口协议。协议就是大家公认的一套标准(叫CGI标准也可以),比如网络协议。大家都遵守一套标准,就减少了沟通的难度。进行C...原创 2018-06-03 19:52:22 · 410 阅读 · 0 评论 -
用C语言实现简易的shell程序,支持多重管道及重定向
1 简介2 功能3 效果展示3.1 启动myshell3.2 执行cd命令3.3 执行外部命令3.4 重定向3.5 管道3.6 exit命令4 关键代码4.1 获取用户名、主机名及当前工作路径4.2 以空格分割命令4.3 执行exit命令4.4 执行cd命令4.5 判断命令是否存在4.6 执行外部命令 ——callCommand()函数4.7 可处...原创 2018-05-13 11:22:14 · 17914 阅读 · 11 评论 -
Online Judge 实现 —— 后台判题
Online Judge 实现 —— 后台判题0. 一些闲话使用JSP实现了一个简易的OJ系统,前端和交互就不提了,里面关键的地方就是后台判题,所以在此记录一下。实现出来的系统中,用户提交代码后,由Servlet把数据存到数据库,并且将判题状态设为Queueing,然后就不需要管了,全权交给Linux端的C++程序解决。后台的判题我是扔到Docker中运行的。在实现的过程中,资...原创 2018-03-29 14:48:29 · 8575 阅读 · 4 评论 -
ubuntu安装g++出错的问题
看ubuntu默认的源太慢,就换了一波阿里的源,结果安装g++的时候疯狂出问题,不断提示需要依赖包,手动安装那个依赖包吧,又需要另一个依赖,贼烦,最后才意识到是源的问题,换成科大的就好了。。。 科大源的地址==》https://lug.ustc.edu.cn/repogen/ 修改方法: sudo mv /etc/apt/sources.list /etc/apt/sources.l...原创 2018-04-02 17:17:48 · 8730 阅读 · 10 评论 -
Linux管道命令——《鸟哥的Linux私房菜》笔记
Linux管道命令——《鸟哥的Linux私房菜》笔记0 前言看完书之后,总感觉不记录下来的话,很快就会忘了,然后又需要重新到处翻书找资料,所以还是把内容记录下来,方便以后复习。本文大部分是书中的内容,中间加入部分自己的理解以及尝试的例子。1 简单使用管道命令使用“|”这个界定符号,用于两个命令中间,作用是把左边命令的标准输出作为右边命令的标准输入。例如要查询/etc...原创 2018-03-31 15:26:00 · 2022 阅读 · 0 评论 -
ubuntu+jdk+tomcat+mysql
1 与正文无关的吐槽 几个月前用JSP写了个小OJ,感觉不记录一下的话,就快要看不懂自己写的代码了=_=||由于之前的服务器就买了两个月的,到期之后没续费,东西都没了(不过当初机智地导出了数据库数据文件),今天重新买了一波,刚好要重新搭建,就从头开始记录一波吧。 其实呢,之所以要记录,是因为……上次弄了一天才弄完,结果没有记下来,导致今晚我又得疯狂找方法。所以还是记录一下,免得以...原创 2018-03-25 02:19:03 · 578 阅读 · 0 评论 -
rpm打包报错
今晚rpm打包遇到个问题,执行spec文件一直提示file must begin “/”:,但是冒号后面又没写是那行出问题,后面还有file not found,但是后面提示的文件路径是存在的。上网搜了一大堆,没一个有用的解决方案。折腾了好久,把能打包成功的spec文件拿来一行行改,始终不行,直到把两个文件改成一样了,依旧是不行,仔细想了一下,感觉有可能是在windows上编辑spec文件的问题...原创 2019-09-06 23:32:39 · 1128 阅读 · 0 评论