Articles of Linux操作系统

编译Lua – 创build.so文件?

我在Centos 6.5上编译Lua 5.2.3,编译/安装正常。 但是,我还需要开发库来编译另一个程序。 我通常会这样做安装这些: yum install lua-devel 问题是,安装Lua 5.1共享库,而不是5.2.3的。 我可以从Centos的回购库中运行Lua 5.1,但如果这是一个简单的事情(知道的人)来做最新的版本,那么我会很感激有人给我指路。 对我来说,Linux makefiles仍然有点呃,你知道… 编辑 我很久以前发现这个网站 – http://lua-users.org/lists/lua-l/2006-10/msg00091.html – 它提出了对makefile的一些改变,但是当我运行它的时候我得到了这个现在: gcc -fPIC -o liblua.so -shared lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o […]

UDP广播发送失败:在Linux 2.6.30上“networking不可达”

我使用udp broadcast.Code段编写一个程序如下: struct sockaddr_in broadcast_addr; socklen_t sock_len=sizeof(broadcast_addr); bzero(&broadcast_addr,sock_len); broadcast_addr.sin_family=AF_INET; broadcast_addr.sin_port=12345; broadcast_addr.sin_addr.s_addr=inet_addr("255.255.255.255"); int fd=socket(AF_INET,SOCK_DGRAM,0); int broadcast_enable=1; setsockopt(fd,SOL_SOCKET,SO_BROADCAST,&broadcast_enable,sizeof(broadcast_enable)); uint8_t send_buf[100]; int ret=sendto(fd,send_buf,sizeof(send_buf),0, (struct sockaddr*)&broadcast_addr,sock_len); if(ret==-1) perror("sendto failed"); 输出: sendto failed: Network is unreachable 但是当我运行“添加默认网关”命令,如“路由添加默认gw 10.10.10.111”,错误消失。当设置一个新的ipaddress到netdev,命令如上应该跑,否则错误来了。 为什么? 谢谢。

GNU-getline:关于EOF的奇怪行为

testing 为了findgetline()在面对EOF时的行为,我写了下面的testing: int main (int argc, char *argv[]) { size_t max = 100; char *buf = malloc(sizeof(char) * 100); size_t len = getline(&buf, &max, stdin); printf("length %zu: %s", len, buf); } 而input1是: a b c Ctrl-D Enter 结果: length 4: abc //notice that '\n' is also taken into consideration and printed input2: a b c […]

Linux的蓝牙l2ping信号强度(不连接?)

对于这里的任何Linux的BlueZ / BT专家: 我正在寻找一种方式来“知道”已知的BT设备(已知的BDADDR),如果他们在范围内,我想知道近似的信号强度。 我知道我可以先运行l2ping,然后build立到设备的连接,最后检查rssi或链接质量,如果连接没有先配对。 然而,我正在寻找的是一种获得信号强度的方式,而无需先连接到设备。 完美的是来自l2ping回复数据包的信号强度测量,但我不知道这个信息是否可用,并沿着堆栈传递。

Ubuntu的Java:find一个特定的程序的PID和杀死程序

我试图做一个应用程序,检查这个特定的应用程序是否正在运行,然后在指定的时间后终止应用程序。 我打算获得应用程序的PID。 我怎样才能得到应用程序的PID? 谢谢

使用mmap增加文件的大小

在Windows上的Python中,我可以通过创build一个大文件 from mmap import mmap f = open('big.file', 'w') f.close() f = open('big.file', 'r+') m = mmap(f.fileno(), 10**9) 现在big.file是(大约)1千兆字节。 但在Linux上,这将返回ValueError: mmap length is greater than file size 。 有没有办法像在Windows上一样在Linux上获得相同的行为? 也就是说,能够使用mmap增加文件的大小?

如何查找名称中带有方括号的文件

我试图find一些方括号的文件,但我似乎无法得到它的工作。 我的文件命名是这样的: [ABC]testingfile.txt 正则expression式我试着: find . -iregex '\[abc\].*test.*' 这似乎不工作出于某种原因。 如果我把它replace – find . -iregex '.*abc.*test.*' – 它工作正常。 所以问题在于方括号。 有任何想法吗?

卷起多部分/表单数据和JSON

有没有办法使用curl做一个multipart/form-data文章,并指定数据是application/json ? 它不一定是curl。

将ASP.Net Web Forms项目部署到Fedora 24

这是我目前的设置: 我的本地计算机:这是我创build和编程我的ASP.Net WebForms项目与启用Cloudflare灵活SSL在Windows 10上使用visual studio 2015 professional。我也有团队资源pipe理器启用意味着我的项目同步到Github和我的所有文件也存储在我自己的存储库中。 我的服务器计算机:运行Fedora 24,我已经为ASP.Net安装了dotnet CLI(又名.Net Core), apache(httpd),nginx和Mono 。 我想部署/发布和托pipe我的webforms项目在这台计算机上的默认web目录(/ var / www / html / mysite /) 问题是,dotnet cli依赖于一个project.json并且与WebForms不兼容 。 .Net核心基本上不是一个选项 。 当我使用mod_mono时,如果在使用命令xsp4 –port 9000运行服务器的情况下连接到https:// localhost:9000 / ,则会出现Error 500 (请参见下文)。 我不能使用xsp4 –port 80或xsp4 –port 443因为它声称Address is already in use即使httpd是监听这些端口的唯一进程。 请注意,我可以使用 xbuild 命令 成功构build项目 。 我如何从github或我的本地计算机上取得我的项目并将其部署到我的服务器计算机上? 我错过了什么吗? 这里是我的虚拟主机configuration参考: httpd.conf 。 启动httpd.service时,我通常不会遇到任何错误。 […]

什么是一个好的Linux退出错误代码策略?

我有几个独立的可执行Perl,PHP CLI脚本和C ++程序,我需要开发一个退出错误代码策略。 这些程序由其他程序使用我创build的用于在PHP中使用exec()的封装类来调用。 所以,我将能够得到一个错误代码。 基于那个错误代码,调用脚本将需要做一些事情。 我已经做了一些研究,看起来1-254(或者只是1-127)范围内的任何事情对于用户定义的错误代码来说都是公平的游戏。 我只是想知道在这种情况下其他人是如何处理error handling的。