Articles of Linux操作系统

编译我自己的内核(而不是从linux-kernel源代码)

我从这里跟随内核教程 即时通讯编辑我的文件有问题。 当我尝试编译时出现以下错误: main.c:8: error: expected declaration specifiers or '…' before 'size_t' main.c:8: error: conflicting types for 'memcpy' ./include/system.h:5: note: previous declaration of 'memcpy' was here main.c: In function 'memcpy': main.c:12: error: 'count' undeclared (first use in this function) main.c:12: error: (Each undeclared identifier is reported only once main.c:12: error: for each function it appears […]

语法错误:文件结束意外(期待“那么”)

我正在做一个Minecraft服务器插件更新的代码我是一个新的shell脚本,所以我不知道很多… 当我运行这个代码时,我得到一个错误: #!/bin/sh export PATH=$PATH:. #Options PLUGINDOWNLOADLINK=http://api.bukget.org/3/plugins/bukkit/$PLUGINNAME/latest/download # Plugin folder if [ -f $PWD\plugins ]; then PLUG=$PWD\plugins else PLUG=$PWD\plug-ins fi cd $PLUG if [ ! -f .\update ]; then mkdir update echo Making Directory "update".. fi # Plugins Found for i in $( ls ); do PLUGINNAME=$i done cd .\update wget $PLUGINDOWNLOADLINK # No Plugins […]

执行错误 – 未find“Qt_5”

在ubuntu 15.10上执行eiskaltdc ++时,出现以下错误: eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5: version `Qt_5' not found (required by eiskaltdcpp-qt) eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5: version `Qt_5' not found (required by eiskaltdcpp-qt) eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5Concurrent.so.5: version `Qt_5' not found (required by eiskaltdcpp-qt) eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5: version `Qt_5' not found (required by eiskaltdcpp-qt) eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by eiskaltdcpp-qt) eiskaltdcpp-qt: /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5: version `Qt_5' not found (required […]

如何通过SSHredirect回声输出到文件

我试图通过ssh将一个variables的内容redirect到一个文件。 喜欢: ssh $MachineIP echo $CM_Config > $mName/CM_CONFIG 其中$CM_Config是我的主机中的一个本地variables,包含多行, $mName/CM_CONFIG位于$MachineIP我应该如何将本地variablesredirect到远程文件,假设我的sshconfiguration是正确的。 提前致谢

在Linux和OS X上的ns精度单调时钟

clock_gettime(CLOCK_MONOTONIC, …)可以在Linux中使用,但不能在OS X上使用clock_gettime(CLOCK_MONOTONIC, …)计时器在OS X中可用,但在Linux中不可用。 我怎样才能得到一个ns的精度单调时钟在C和Linux和OS X的作品?

使用gnuplot来绘制sqlite数据库

我有一个包含以下格式的基本天气信息的sqlite数据库: temp1 temp2 pressure humidity 22 23 1024 40 24 25 1027 45 25 26 1020 62 18 15 1019 80 我怎样才能使用gnuplot来绘制这个数据? 在能够绘制数据之前,我必须重新排列数据吗?

蓝牙错误:本地库bluecove_arm不可用

在我的Raspberry Pi上运行leJOS pc程序时遇到了一些困难。 它在我的电脑上运行。 我得到一个错误,指出:“本地库bluecove_arm不可用” 蓝牙工作正常,否则使用:“hcitool扫描” 我找不到Bluecove for ARMv6 / Raspberry Pi的编译版本。 我在我的PC上安装了Maven,并安装了Maven Eclipse插件,试图从源文件编译Bluecove:虽然我看不到如何select我想要的目标平台(ARM11)。 我注意到另一个用户提出了一个非常类似的问题,但没有提供任何有用的东西: 我的Java蓝牙服务器上运行debian wheezy树莓派需要bluecove本地库 – 我在哪里可以find它?

getnameinfo指定socklen_t

getnameinfo原型的第二个参数要求socklen_ttypes,但sizeof使用size_t。 那么我怎样才能得到socklen_t? 原型: int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags); 例: struct sockaddr_in SIN; memset(&SIN, 0, sizeof(SIN)); // This should also be socklen_t ? SIN.sin_family = AF_INET; SIN.sin_addr.s_addr = inet_addr(IP); SIN.sin_port = 0; getnameinfo((struct sockaddr *)&SIN, sizeof(SIN) /* socklen_t */, BUFFER, NI_MAXHOST, […]

调用posix_spawn时closures所有文件句柄

我想使用posix_spawn(…)(或者非常相似的东西)产生一系列进程。 这个函数接受一个posix_spawn_file_actions_ttypes的参数,它允许我指定如何处理打开的文件句柄。 从文档中我可以确定,所有文件都从调用进程inheritance,并根据posix_spawn_file_actions_t结构中的信息进行修改。 我希望所有文件都未被生成的进程打开(stdin,stdout和stderr除外)。 有谁知道如何做到这一点? 显然这可以在一些实现中使用'POSIX_SPAWN_CLOEXEC_DEFAULT'spawn属性标志来完成,但是这在我的平台上是不可用的。 我也可以使用fcntl(…)在打开文件的时候指定'close on exec',但是我觉得这个问题的一个更加本地化的解决scheme是可取的。

在C中使用stdin和select()

我有以下程序: #include <stdio.h> #define STDIN 0 int main() { fd_set fds; int maxfd; // sd is a UDP socket maxfd = (sd > STDIN)?sd:STDIN; while(1){ FD_ZERO(&fds); FD_SET(sd, &fds); FD_SET(STDIN, &fds); select(maxfd+1, &fds, NULL, NULL, NULL); if (FD_ISSET(STDIN, &fds)){ printf("\nUser input – stdin"); } if (FD_ISSET(sd, &fds)){ // socket code } } } 我面对的问题是,一旦在STDIN上检测到input,“用户input – 标准input”信息将继续打印…为什么在循环检查哪些描述符已input时不打印一次? […]