小编Sta*_*ire的帖子

我如何(递归?)使用inotify监视新目录的内容?

首先,我想首先使用inotify来监视文件和子目录的特定目录(主目录).如果将新目录添加到此主目录中,我如何确保使用inotify监视此子目录?如何监视主目录的此子目录中的新目录?

我认为通过使用该inotify_add_watch()函数将其添加到手表很容易,但我不知道如何在子目录中获取文件和目录的正确相对路径地址(用于在保持其他位置的类似Dropbox的同步中正确的目录树,例如).

c unix directory inotify

6
推荐指数
1
解决办法
8263
查看次数

g++ 不输出任何错误

每当我尝试在终端上使用 g++ 编译 c++ 代码时,即使我确信在编译时应该捕获一些错误(例如语法、引用类型),我似乎也无法让 g++ 输出任何错误消息。 ..)。

我尝试了几种方法,例如这个 make 文件:

all:
    g++ -W -Wall -Werror main.cpp
Run Code Online (Sandbox Code Playgroud)

它所做的只是输出:

make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

显然这没那么有用...

输入类似这样的内容:

g++ -W -Wall -Werror main.cpp 
Run Code Online (Sandbox Code Playgroud)

直接到终端(没有 make 文件)根本不输出任何消息。

但是,这在编译时成功输出了所有错误:

cc main.cpp
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何让 g++ 输出错误消息,以便我知道在哪里更正我的代码?

c++ g++

5
推荐指数
1
解决办法
4977
查看次数

如何对结构的2D动态数组进行排序

我在排序2D动态结构数组时遇到问题.

我有一个结构:

typedef struct abc
{
    int total;
} abc;
Run Code Online (Sandbox Code Playgroud)

和动态2D数组:

list = (abc**)malloc(listSize * sizeof(abc*));
    for (int i = 0; i < listSize; i++)
    {
        list[i] = (abc*)malloc(listSize2* sizeof(abc));
    }
Run Code Online (Sandbox Code Playgroud)

我想使用排序算法:

qsort(list, listSize, sizeof list[0], cmp);
Run Code Online (Sandbox Code Playgroud)

和qsort的比较函数:

int cmp(const void *l, const void *r)
{
    const abc *a = *(const abc **)l;
    const abc *b = *(const abc **)r;

    return a[0].total > b[0].total;

}
Run Code Online (Sandbox Code Playgroud)

但问题是虽然我认为它适用于一个小列表(如大约5个整数),但如果列表有点大,它就无法正确排序.我该怎么做cmp()函数才能正常工作?

顺便说一下,我只需要排序,list[x][0]因为我稍后会添加更多元素.

(我基于另一个Stackoverflow帖子的排序代码)

c arrays sorting struct

3
推荐指数
1
解决办法
470
查看次数

标签 统计

c ×2

arrays ×1

c++ ×1

directory ×1

g++ ×1

inotify ×1

sorting ×1

struct ×1

unix ×1