Articles of Linux操作系统

使用C ++在Linux中更改当前目录

我有以下代码: #include <iostream> #include <string> #include <unistd.h> using namespace std; int main() { // Variables string sDirectory; // Ask the user for a directory to move into cout << "Please enter a directory…" << endl; cin >> sDirectory; cin.get(); // Navigate to the directory specified by the user int chdir(sDirectory); return 0; } 这段代码的目的很明显:将用户指定的目录设置为当前目录。 我的计划是对其中包含的文件进行操作。 […]

如何在linux中使用cx_freeze来创build一个在Windows中使用的包

如何在linux中使用cx_freeze创build一个包,用于像.exe或.bin文件这样的窗口。 我在linux下testing了cx_freeze,但是这使得linux和windows的包是未知的。 例如 : $ cxfreeze gui.py 这是制作的文件: gui 那只在linux下运行。 有没有办法使用cx_freeze制作exe或bin包? 或者用其他替代方法而不是cx_freeze来使一个bin文件在其他平台上独立执行? 我使用python3(3.x)。

I2C设备的linux驱动

如何使i2c设备的字符设备,打开,closures,ioctl等function? 过去两周我一直在寻找关于它的信息,但找不到任何工作。 我发现了一些基本的Linux设备驱动程序的信息,但它是为2.6内核编写的,我使用3.4.79(我试图在cubian distr上为cubieboard2写这个驱动程序),所以这本书有许多不赞成使用的函数,写我的驱动程序就像那里,但它仍然不工作(给我内核错误,而我正在修理猫字符设备)。 任何人都可以解释我该怎么做,或者至less给我一个工作的例子。 所以,有我的代码: http : //pastebin.com/T7PBTpym 我只是试图让i2c总线的工作,但在我的示波器上,我没有看到任何i2c线,而我没有得到任何错误,当我编译它。 另外我无法find如何将设备驱动程序附加到i2c总线号码。 因为我的cubieboard2上有4个i2c总线,如何将设备驱动程序附加到i2c-1总线上?

在编译affdex linux示例应用程序时未定义对进程(std :: __ cxx11 :: basic_string …)的引用

我尝试编译affdex sdk示例应用程序时遇到以下错误 Linking CXX executable video-demo CMakeFiles/video-demo.dir/video-demo.cpp.o: In function 'main': video-demo.cpp:(.text+0x11cb): undefined reference to affdex::VideoDetector::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) collect2: error: ld returned 1 exit status 我正在使用GCC 5.2.1

查找哪个驱动器对应于Linux中的哪个USB大容量存储设备

我有几个USB大容量存储闪存驱动器连接到Ubuntu Linux计算机(Ubuntu 10.04.1,内核2.6.32-25-386),我需要以编程方式分开(如果可能的话,从bash中分离出来,但我不害怕编译) – 我需要find哪个块设备对应哪个物理设备(例如/dev/sdb1 – >设备在USB端口1;在我的情况下,一个设备〜一个卷)。 换句话说,我知道我有三个硬件设备插入USB端口, 它们中的每一个都作为USB大容量存储设备(如lsusb所示)显示在系统中,作为块设备( /dev/sdb1 )创build,并由UUID( /media/1234-5678 )自动挂接。 USB device block device mountpoint USB device in port 2.2 <-> /dev/sdb1 <-> /media/1234-5678 我没有试图find块设备和挂载点之间的关系; 我试图find块设备和USB设备之间的关系,有没有办法? 为什么? 在磁盘上会有一些写操作,并有不可预知的完成时间。 我需要给操作员一些指示,例如“现在可以移除端口2(这是从左边的第二个)的磁盘”。 我发现哪个物理端口对应于该特定机器上的哪个端口号,并且从挂载点查找块设备是简单的; 现在我卡住逻辑USB端口映射到块设备。 我可以看到与lsusb的磁盘: Bus 001 Device 058: ID 067b:2517 Prolific Technology, Inc. Mass Storage Device Bus 001 Device 060: ID 067b:2517 Prolific Technology, […]

如何克服Linux上的ksh与安装在AIX / Solaris / HPUX上的不兼容?

我参与了将包含几百个ksh脚本的系统从AIX,Solaris和HPUX移植到Linux的过程。 我已经遇到了ksh在两个系统上行为方式的差异: #!/bin/ksh flag=false echo "a\nb" | while read x do flag=true done echo "flag = ${flag}" exit 0 在AIX,Solaris和HPUX上,Linux上的输出为“flag = true”,输出为“flag = false”。 我的问题是: 是否有一个环境variables,我可以设置让Linux的ksh行为像其他奥斯的'? 否则: 在Linux的ksh上有没有一个选项来获得所需的行为? 否则: 有一个ksh实现可用于Linux与所需的行为? 其他说明: 在AIX上,Solaris和HPUX ksh是ksh88的变种。 在Linux上,ksh是公有域ksh(pdksh) 在AIX,Solaris和HPUX上,dtksh和ksh93(我安装了它们)与ksh一致 我有权访问的Windows NT系统:Cygwin和MKS NT,与Linux一致。 在AIX,Solaris和Linux上,bash是一致的,给出了不正确的(从我的angular度来看)“flag = false”的结果。 下表总结了系统的问题: uname -s uname -r which ksh ksh version flag = ======== ======== ========= […]

如何在一行命令中将密码应用到sudo并执行su root?

我创build了一个名为samX的用户,具有root权限(在visudo附加了“samX ALL =(ALL:ALL)ALL”)。 我试图将密码应用到sudo ,然后su root并在一行命令中依次执行whoami 。 我目前的命令有点如下,但它抱怨错误: sudo:su root; whoami:命令未find echo 'CbEYKFKt' | sudo -S 'su root; whoami' 其中“CbEYKFKt”是用户samX的密码。 有没有解决这个问题? 非常感谢。

Bash – 如何把每一行放在引号内

我想把每一行放在引号内,比如: abcdefg hijklmn opqrst 转换成: "abcdefg" "hijklmn" "opqrst" 如何在Bash shell脚本中做到这一点?

Linux:pipe入Python(ncurses)脚本,stdin和termios

显然,这几乎是“ 糟糕的pipe道filedescriptor从Python中的标准input读取时重复- Stack Overflow ”; 不过,我认为这个情况稍微复杂一些( 而且这不是Windows特有的,因为这个线程的结论是 )。 我正在尝试在Python中使用一个简单的脚本:我想为脚本提供input – 通过命令行参数; 或者通过将一个string“pipe”到这个脚本中 – 并使脚本使用cursesterminal接口显示这个inputstring。 完整的脚本,在这里被称为testcurses.py ,如下所示。 问题是,每当我尝试实际的pipe道,似乎搞乱标准input, curses窗口永远不会显示。 这是一个terminal输出: ## CASE 1: THROUGH COMMAND LINE ARGUMENT (arg being stdin): ## $ ./testcurses.py – ['-'] 1 stdout/stdin (obj): <open file '<stdout>', mode 'w' at 0xb77dc078> <open file '<stdin>', mode 'r' at 0xb77dc020> stdout/stdin (fn): 1 0 […]

如何在共享库(.so)中使用共享库的同一进程的实例共享全局variables?

我有一个共享库(.so),在执行应用程序之前预先加载,并且在应用程序使用的共享库中有一些全局数据结构。 应用程序可以使用fork()创build其他进程,这些进程可以更新共享库中的全局数据结构。 我希望对所有stream程中的这些全球数据结构保持一致的看法。 有没有什么办法可以在Linux中完成? 我曾尝试使用shm_ *调用和mmap()将共享库的全局数据映射到共享段,但它不起作用。