Articles of Linux操作系统

源代码洞察中的汇编代码支持

有没有人试过在源代码洞察中浏览汇编语言文件(filename.s)? 我只是将整个Linux内核项目添加到源洞察,但它不支持任何程序集文件。

在Linux中写入命名pipe道的最好,最安全的方法是什么?

在Linux中写入命名pipe道的最好,最安全的方法是什么? 或者,我怎样才能使命名pipe道安全? 以下是我如何使用PHP写入到Linux上的pipe道: $con = fopen("/tmp/myFIFO", "w"); fwrite($con, "UP\n"); fclose($con); 我希望使它更安全。 这是我如何创build在C: int pc; char mode[] = "0777"; int i = strtol(mode, 0, 8); pc = mkfifo(FIFO, 0); if(pc < 0) { printf("Failed in creating a pipe\n"); printf("Exiting…\n"); exit(1); } else { printf("Success in Creating Pipe\n"); chmod("/tmp/myFIFO", i); }

加载graphics内容的线程

我正在创造游戏引擎。 在Windows上,我有两个线程共享两个上下文(使用wglShareLists)。 它工作正常。 当一个线程加载资源时,其他的只是渲染简单的加载屏幕。 在Linux上没有WGL,只有glX。 我不知道如何正确使用它。 目前我的线程代码如下所示: LinuxThread::LinuxThread() : handle_(0), running_(false), task_(0), useGraphicsContext_(0), threadContext_(0), threadDrawable_(0), dsp_(0) { } LinuxThread::~LinuxThread() { finishTask(); running_ = false; glXDestroyContext(dsp_, threadContext_); } ULONG LinuxThread::getId() { return static_cast<ULONG>(handle_); } void LinuxThread::start() { running_ = true; pthread_create(&handle_, 0, &LinuxThread::staticRun, (void*) this); } bool LinuxThread::isRunning() { return running_; } void LinuxThread::setGraphicsContext(bool state) { […]

Gstreamervideo输出位置跟踪和search

我正在使用gstreamer(gst-launch)来捕捉摄像头,并保存为video和图像帧。 stream水线的问题是,当stream水线结束(中断)videologging时,它不能支持位置跟踪和搜寻。 因此,video播放与未知长度的VLC播放器。 我认为问题在于pipe道本身。 我们如何能够实现支持位置跟踪和寻找。 下面你可以看到gstreamerpipe道代码: gst-launch -v –gst-debug-level=0 \ v4l2src device=/dev/video0 \ ! videorate \ ! video/x-raw-yuv, width=320, height=240, framerate=5/1 \ ! tee name=tp tp. \ ! queue \ ! videobalance saturation=0.0 \ ! textoverlay halign=left valign=top text="(c)PARK ON OM " shaded-background=true \ ! clockoverlay halign=right valign=top time-format="%D %T " text="Date:" shaded-background=true \ ! […]

从文件pipe理器打开多个文件

我已经构build了一个(Linux)GUI应用程序,可以从terminal启动并接受未定义数量的文件作为参数。 该应用程序读取sys.argv并在QListWidget中列出这些文件的名称。 代码是这样的: import sys from PyQt4.QtGui import QApplication, QMainWindow, QCoreApplication class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) # parse command line arguments for i in QCoreApplication.argv()[1:]: … def main(): app = QApplication(sys.argv) … 我想要做的是能够从文件pipe理器中select多个文件,并通过文件pipe理器提供的“打开方式…”选项使用我的应用程序打开它们。 这可以如何实现? 使用当前代码,当我尝试时,只有一个选定的文件显示在QListWidget上。 编辑: 它最终似乎取决于文件pipe理器。 我尝试了几个文件pipe理器和… pcmanfm:它只打开一个选定的文件。 spacefm:正常工作! 海豚:它打开每个文件到我的程序的不同实例。 如果我select3个文件,它会打开我的应用程序3次,每个文件一个。 鹦鹉螺:我没有设法打开任何文件。 我的程序没有在build议的应用程序中列出,我没有find任何方法来做到这一点。

用sedreplace多行variables

我必须创build一个脚本来replaceApache的httpd.conf文件中的几行。 我有2个问题。 首先,我如何将多行保存到一个variables中? 我试过了,但没有奏效 replace="#ErrorLog "logs/error_log" '\n' ErrorLog "|<apache_location>/bin/rotatelogs <apache_location>/logs/error.%Y.%m.%d.log 86400" '\n'没有工作来添加换行符。 然后我的想法是使用sed (1)像这样: sed -i "s#ErrorLog "logs/error_log"#$replace#g" $apache_httpd 我不知道这是否会起作用。 我能够用几行创buildvariables: VAR="#ErrorLog \"logs/error_log\"" VAR="$VAR"$'\n'"ErrorLog \"|<apache_location>/bin/rotatelogs <apache_location>/logs/error.%Y.%m.%d.log 86400\"" replace="ErrorLog \"logs/error_log\"" 现在问题出现在sed中,我不得不使用不同的分隔符( http://backreference.org/2010/02/20/using-different-delimiters-in-sed/ )。 但是它一直在失败。 sed -i "s;$replace;$VAR;g" /root/daniel/scripts/test3/httpd.conf sed:-eexpression式#1,字符54:未终止的's'命令

从NTP服务器传递时间信息到strftime函数

我通过引用这里的网页在底部使用代码ntp客户端代码。 代码接收时间信息,然后我想存储的时间信息为YYYYMMDDHHMM像201304211405 。 代码接收来自NTP服务器的时间信息,但是我发现如何将该信息传递给strftime ,我该如何将收到的时间信息传递给strftime ? 这是代码的相关部分 i=recv(s,buf,sizeof(buf),0); tmit=ntohl((time_t)buf[10]); //# get transmit time tmit-= 2208988800U; printf("tmit=%d\n",tmit); //#compare to system time printf("Time is time: %s",ctime(&tmit)); char buffer[13]; struct tm * timeinfo; timeinfo = ctime(&tmit); strftime (buffer,13,"%04Y%02m%02d%02k%02M",timeinfo); printf("new buffer:%s\n" ,buffer); 这里是我正在使用的完整代码 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> void ntpdate(); int main() […]

如何将Python C模块与`ld`连接起来。 对`__dso_handle'的未定义引用

我目前的命令: c++ -fPIC -c algo_cython.cpp ld -shared algo_cython.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -lc -lstdc++ -o algo_cython.so 而错误: algo_cython.o: In function `__static_initialization_and_destruction_0(int, int)': algo_cython.cpp:(.text+0x83e4): undefined reference to `__dso_handle' ld: algo_cython.o: relocation R_X86_64_PC32 against undefined hidden symbol `__dso_handle' can not be used when making a shared object ld: final link failed: Bad value

守护进程拒绝执行不安全的程序

我想在系统启动后启动一个服务,这里是我的脚本/etc/rc.local : daemon /usr/bin/python /usr/local/google/home/yowang/Downloads/ftp.py > /var/log/pyftpd.log 2>&1 /var/log/pyftpd.log中的错误输出如下所示: daemon: ignoring unsafe /etc/daemon.conf (/ is group and world writable) daemon: fatal: refusing to execute unsafe program: /usr/bin/python (/ is group and world writable) 谁能帮忙? 谢谢 !

Linux的dma驱动程序dma_cap_set,dma_cap_zero

我正在为一个dma编写一个linux设备驱动程序,同时在LXR中通过dma驱动程序的源代码,我遇到了dma_cap_zero和dma_cap_set函数以及dma_cap_ *的整个系列。 这些function是什么? 还有一个称为dma_transaction_type的结构 enum dma_transaction_type { DMA_MEMCPY, DMA_XOR, DMA_PQ, DMA_XOR_VAL, DMA_PQ_VAL, DMA_MEMSET, DMA_INTERRUPT, DMA_SG, DMA_PRIVATE, DMA_ASYNC_TX, DMA_SLAVE, DMA_CYCLIC, DMA_INTERLEAVE, /* last transaction type for creation of the capabilities mask */ DMA_TX_TYPE_END, }; 枚举types代表什么?