Articles of Linux操作系统

伪terminal的使用 – C

我使用特定的会话编号创build了一个pThread 。 如果pThread产生了,我试着让另一个进程运行使用openpty启动的伪terminal。 这是代码的一部分: if (openpty(&(numa_pst[session][0]),&(numa_pst[session][1]), NULL, NULL, NULL) != 0) { int err_code = errno; sprintf (line_temp, "*** ERROR: numa openpty failed with:\n%s\n", strerror(err_code)); } session = 0; int* pi = calloc(sizeof(int), 1); *pi = session; if (pthread_create(&system_wideThread[session], 0, system_wider, (void*)pi)) { int err_code = errno; sprintf (line_temp, "*** ERROR: System-wide thread spawn failed […]

linux历史命令

如果我键入历史命令,我只能查看1000行。 我想查看更多。 这将是很好如果我可以查看所有命令之间键入某些date或几个月。 这可能吗? 如果是的话,该怎么做?

内置的内核驱动还需要设备树吗?

如果我将内核驱动程序作为module构build,那么可以在运行时用insmod或modprobe手动将其插入到内核中,我很清楚。 但下面关于设备树的说法正确吗? 如果我将内核驱动程序作为module构build,它将在引导时自动插入内核,具体取决于它是否在设备树中列出 如果我将内核驱动程序构build为built-in驱动程序,则无论设备树如何,它都将在引导时自动插入到内核中

我想从COM端口连续接收数据,同时要写入文件

我想读取串行COM端口并将数据写入LINUX中的文件。 其实我是从其他电脑的超级terminal发送数据。 问题是没有while循环,我只能写一行。 但while(1)循环,我不能写任何文件。 否则我必须发送BIG文件,然后应用程序退出/终止并写入文件。 我的应用程序应该写入数据(可能是2行或任何东西); 之后它必须等待下一个数据。 所以请帮我解决….. 这是我的代码 ========================================= #include <termios.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <sys/signal.h> #include <sys/types.h> #include <assert.h> #include <string.h> #include <time.h> #define BAUDRATE B115200 #define MODEMDEVICE "/dev/ttyS0" #define _POSIX_SOURCE 1 /* POSIX compliant source */ #define FALSE 0 #define TRUE 1 volatile int STOP=FALSE; void signal_handler_IO (int status); […]

使用C ++在Linux中计算磁盘读/写

我的要求是通过总磁盘读/写操作(或读/写数据量)来分析当前进程磁盘读/写操作。 我需要先抽取样品,并在这两者之间绘制图表。 我需要在c ++中的Linux(Ubuntu 12.10)上执行此操作。 有任何可用于此任务的API /工具吗? 我发现一个工具,即iotop但我不知道如何使用这个当前进程与系统的广泛使用。 谢谢

imagemagick无法加载远程图像

我有一个PHP脚本,下载,重新调整和存储一个图像使用以下命令: exec('convert -sample 100×100 http://img.zgserver.com/php/pic.jpg images/somename.jpg'); 它一切正常,直到我把它放在一个不同的服务器(这是一个gentoo,如果这有什么区别,显然转换不会抓住远程图像,如果我喂它像上面的url它返回 convert: missing an image filename 'images/somename.jpg' @ convert.c/ConvertImageCommand/2822. 我检查了使用标志,但似乎没有任何关系到远程图像…新的服务器是本地机器,我有根访问,所以我几乎可以做任何事情 – 所以我怎么能做到这一点? 另一个可能相关的问题是,PHP的file_get_contents()不会从那里获得远程文件。 也许这是一个防止二进制文件获取远程文件的系统范围设置? 有没有人有过这样的问题? 你是怎么解决的? 谢谢, 马拉 更新:澄清 这个问题(imagemagick)与PHP无关。 这是我的笔记本电脑,可以访问互联网就好了,而且不涉及防火墙。 如果我打开一个shell并input convert -sample 100×100 http://img.zgserver.com/php/pic.jpg images/somename.jpg 它甚至没有尝试访问互联网的上述错误失败。 另一方面,'wget'以及网页浏览器等工作得很好。 在其他系统上,input到shell中的convert命令没有错误。 请忽略file_get_contents问题,因为我认为上述原因并不相关

CakePHP 1.3:高CPU使用率

我有一个运行在共享主机帐户上的CakePHP应用程序,供应商一直在窃听我(A2HOSTING),我的帐户过度使用CPU资源,有时是100%。 就在最后几个小时,CPanel报告CPU使用率很高。 我已经和他们说过了,他们说所有东西都指向'webroot'目录。 在那里我只有index.php和css.php 。 任何想法,可能导致这个问题的原因,以及我能做些什么来解决这个问题,因为他们威胁要暂停我的账户。 谢谢,

通过内核模块轮询循环设备

我试图读取我通过内核模块在200ms内创build的回送设备,但是当我尝试插入内核时,它正在崩溃内核。 我认为我的阅读模块有问题,但它没有定时器正常工作。 我是内核编程新手,请帮忙。 预先感谢您:D #include <linux/kernel.h> #include <linux/module.h> #include <linux/timer.h> #include<linux/fs.h> #include <linux/init.h> #include <asm/segment.h> #include <asm/uaccess.h> #include <linux/buffer_head.h> static struct timer_list my_timer; static void read_file(char *filename) { struct file *fd; char buf[1]; unsigned long long offset=0; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); fd = filp_open(filename, O_RDONLY, 0); if (fd >= 0) { printk(KERN_DEBUG); while (vfs_read(fd, […]

nginx烧瓶gunicorn python …从哪里开始?

我是一个沉重的Windows用户(在Windows环境下编程和pipe理服务器)谁开始学习Unix,并想学习如何在Linux上使用Debian的工作。 我开始深入了解操作系统级别的工作原理,但是在使用python在这个新环境中开发应用程序时,我感到有点不知所措。 有烧瓶,芹菜,柴油,gunicorn,nginx,django和更多的其他包和或框架。 有没有人知道一个很好的方法来理解这个组件? 一本好书或网页链接也许? 我的目标是了解并了解在开发过程中何时使用某些软件包和/或框架。 在此先感谢您提供的任何提示。

我怎么能告诉Linux保持一个页面,而不是驱逐它?

可能重复: 我可以告诉Linux不要换出特定进程的内存吗? 我想在Linux中分配一块内存,并确保它不会得到#GP或#PF错误。 关于#GP,作为程序员我有责任确保不超出任何界限。 然而,#PF是操作系统的责任,因为它可以select是否驱逐一个页面。 我想如果我经常使用相同的页面,操作系统将足够聪明,不会驱逐它。 但是,如果我想分配一大块内存,那么需要一段时间才能到达一些页面,而我不希望操作系统在这段时间内将其驱逐出去。 有没有办法告诉Linux保持一个页面,使我从来没有得到一个页面错误? 注意:这与问题类似, 如何告诉Windows保留一个页面而不是驱逐它? 除了这个是关于Linux的