Articles of Linux操作系统

我想从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的

HR定时器精确度研究案例

有了这个话题,我会更好地讨论人力资源计时器和真正的精确度问题。 我研究了大量关于它们的文档,我确信它们是在Linux内核模块中延迟执行问题的最好和最可靠的解决scheme,CPU成本较低,时序精度更高(例如一些时间关键驱动程序使用它们,就像这个https://dev.openwrt.org/browser/trunk/target/linux/generic/files/drivers/pwm/gpio-pwm.c?rev=35328 )。 你也适合吗? 这是我见过的最全面和最详细的文档之一: https : //www.landley.net/kdocs/ols/2006/ols2006v1-pages-333-346.pdf 。 人力资源计时器承诺在jiffies的决议下,但不幸的是,在我的系统,我没有得到低于6毫秒的延迟的预期结果(我会稍后显示更多的细节)。 我的环境是: Windows 10 PRO 64位/ 8Gb RAM / CPU Intel 4 Core VMWare播放器12 虚拟化操作系统Linux Mint 18.1 64位 内核configuration 版本:4.10.0-24 – 通用 CONFIG_HIGH_RES_TIMERS = Y CONFIG_POSIX_TIMERS = Y CONFIG_NO_HZ_COMMON = Y CONFIG_NO_HZ_IDLE = Y CONFIG_NO_HZ = Y CONFIG_HZ_250 = Y CONFIG_HZ = 250 / sys / […]

无法删除FileA以外的其他文件夹

如何删除文件夹中除FileA之外的所有其他内容,甚至是隐藏文件? 我使用Ubuntu。 我尝试了以下失败 rm [^fileA]

在C中的subprocess和父进程之间的通信linux:父进程不阻塞

我想让父进程和subprocess在C使用pipe道进行通信。 首先,我想要父母传递一个string,然后孩子承认它。 我创build了两个文件描述符。 一个为父母对孩子即读音pipe和另一个反向笔pipe。 问题是它不把我的数据作为input。 另外,我希望printf语句(如“input您的数据”)被打印一次,但自fork之后,有两个进程,所以它们被显示两次。 任何替代scheme? //readpipe[0] = child read //readpipe[1]= parent write //writepipe[0]=parent read //writepipe[1]=child write #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <string.h> int main(void) { pid_t pid; int r; /* Hope this is big enough. */ char buf[1024]; char cp[50]; char ans; int readpipe[2]; int writepipe[2]; int a; int […]