小编sho*_*ban的帖子

使用单个操作/规则生成多个目标

如何编写规则以使用单个操作生成文件集.

例如:文件x,y,z作为脚本的单次执行的结果而产生t.sh这需要文件a作为输入.

x y z: a
    t.sh $@
Run Code Online (Sandbox Code Playgroud)

GNU make尝试执行t.sh3次.

makefile gnu-make

23
推荐指数
1
解决办法
1万
查看次数

通过/ proc/mounts监视安装点更改

根据proc手册,可以通过打开"/ proc/mounts"监视linux系统中的挂载点更改,并添加文件描述符以读fd_set入select()调用.

以下代码适用于Ubuntu 9.04,而不适用于Ubuntu 10.04(2.6.32 linux内核):

int mfd = open("/proc/mounts", O_RDONLY, 0);

fd_set rfds;
struct timeval tv;
int rv;

FD_ZERO(&rfds);
FD_SET(mfd, &rfds);
tv.tv_sec = 5;
tv.tv_usec = 0;

int changes = 0;
while ((rv = select(mfd+1, &rfds, NULL, NULL, &tv)) >= 0) {
    if (FD_ISSET(mfd, &rfds)) {
        fprintf(stdout, "Mount points changed. %d.\n", changes++);
    }

    FD_ZERO(&rfds);
    FD_SET(mfd, &rfds);
    tv.tv_sec = 5;
    tv.tv_usec = 0;

    if (changes > 10) {
        exit(EXIT_FAILURE);
    }
}
Run Code Online (Sandbox Code Playgroud)

可编辑的代码段.

文件描述符总是在一台机器上可读,因此它会在select调用中不断弹出.即使坐骑没有变化.

我在这里错过了什么吗?

在此先感谢您的帮助!

男人5 …

c linux filesystems mount procfs

10
推荐指数
1
解决办法
5886
查看次数

标签 统计

c ×1

filesystems ×1

gnu-make ×1

linux ×1

makefile ×1

mount ×1

procfs ×1