小编Pav*_*ath的帖子

给定目录名称,如何在 C 中找到它所在的文件系统?

例如,示例df命令输出是

Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4         512.00    322.96   37%     4842     7% /
/dev/hd2        4096.00    717.96   83%    68173    29% /usr
/dev/hd9var     1024.00    670.96   35%     6385     4% /var
/dev/hd3        5120.00      0.39  100%      158    10% /tmp
Run Code Online (Sandbox Code Playgroud)

现在,如果我指定类似/tmp/dummy.txt我应该能够得到/dev/hd3或只是hd3.

编辑:感谢 torek 的回答。但是探查/proc会变得非常乏味。谁能建议我一些可以在内部执行相同操作的系统调用?

c linux filesystems directory mount

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

启动httpd - 检索pid文件时出错(null)

我手动编译并安装httpd在Fedora上.我试图第一次启动它:

./apachectl start -d ../
Run Code Online (Sandbox Code Playgroud)

并收到以下错误:

(20014)Internal error: Error retrieving pid file (null)
 Remove it before continuing if it is corrupted.
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

linux apache fedora

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

块内的静态函数声明

一个教程

您不能将块中的函数声明为静态.

是什么原因?它如何影响功能?

c

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

Vim中的<Ctrl> + <Shift> + <End>相当于什么?

在VIM中是否有Ctrl+ Shift+的等价物End可以选择从当前光标位置到文件末尾的所有文本?

vim keyboard-shortcuts editor

2
推荐指数
1
解决办法
201
查看次数

为什么C中的运算符之间存在不同的关联性?

谈到C中运算符的关联性,我想知道为什么具有相同优先级的运算符之间存在差异关联性.例如,后缀增量和后缀减少有左关联性; 而前缀增量和前缀减量具有正确的相关性.对于所有相同的优先级运算符,只有左右关联性是不是很简单?

那背后有什么理由吗?

c operators associativity

2
推荐指数
1
解决办法
205
查看次数

NUL未申报 - 首次使用此功能

网上我了解C包含NUL关键字.

但是在编译时我得到了一个错误

NUL undeclared first use in this function'
Run Code Online (Sandbox Code Playgroud)

我的代码片段:

for (;;) {
        char ch = (*pzDest = *pzSrc);
        if (ch == NUL)
            break;
        if (ch == ':') {
            *pzDest = NUL;
            break;
        }
        pzDest++;
        pzSrc++;
    }
Run Code Online (Sandbox Code Playgroud)

知道为什么我会收到这个错误吗?

c nul

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

无法从stdout读取

我正在尝试stdout将我自己的程序读入这样的2个数组中

#include<stdio.h>

int main ()
{
    char arr[100]={0};
    char arr2[100]={0};

    printf("Hello world\n"); // This writes to stdout

    fgets( arr, 80, stdout );

    fseek ( stdout, 0, SEEK_SET );

    fgets ( arr2, 80, stdout );
    printf ("First array is %s\n", arr );
    printf ("Second array is %s\n", arr2 );

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

输出不是我所期望的.这就是数组都是空的而不是Hello World像我预期的那样包含.

我经历了这篇文章,建议处理管道来完成我想要的但不告诉我为什么上面的代码不起作用?

编辑:虽然知道替代方案以使其完成上述工作会很好,但我对阅读stdout相同程序所涉及的问题更加好奇

c stdout

2
推荐指数
1
解决办法
2655
查看次数

如何从块的开头到C块的末尾,反之亦然?

我在C中有一段代码,如下所示 -

enum colors { //---->I am here
RED,
BLUE,


/* Hundreds of colors in between */


}; // -----> I want to reach here in the easiest possible way.
Run Code Online (Sandbox Code Playgroud)

从块的末尾回到块的开头也是有用的.

vim

2
推荐指数
1
解决办法
98
查看次数

头文件中声明和#defines 的首选顺序

我正在Linux平台上用C语言编程。#defines我想知道应该是声明和头文件中的顺序。

例如,如果我的头文件包含以下内容,任何人都可以建议我安排所有这些声明、宏、外部声明等函数的完美顺序应该是什么。

就可读性和编码标准而言,这对于在头文件中正确排列所有这些内容非常有益。

下面是示例头文件(我想按正确的顺序排列以下内容):

 #include <pthread.h>                   //  Including Header files 
 #include <signal.h>

 #define IMAGE_DIRECTORY                 "Abcdefgh..."   //  Providing #defines 
 #define FAILED_TO_RECOGNIZE             "Xykbkksk..."
 #define PROGRESS_FRAME_COLOR            "#8e8ea1"
 #define FRAME_BG_COLOR                  "#7c90ac"      

 #define PRINT_FUNCTION_NAME fprintf(stderr, 
                   "CTRL IN FUNCTION : %s\n",__func__);   // Macro like functions 
typedef struct {                                           
        int userId;                                      // Structure
         char name[32], rollNo[32];
         char class[16], section[16];
         unsigned long Id;
 }data_type;

int noOfUsersList=0, usersListCount=0;                   // Global variables 
Run Code Online (Sandbox Code Playgroud)

c linux macros coding-style header-files

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

为什么这个对重载函数的调用不明确?

考虑这个程序-

#include <string>
#include <vector>
#include <set>
void fun(const std::string& val) {
}

void fun(std::vector<std::string> val) {
}

int main()
{
    std::set<std::string> example;
    fun({std::begin(example), std::end(example)});
}
Run Code Online (Sandbox Code Playgroud)

在编译时,我遇到了这些错误-

prog.cc: In function 'int main()':
prog.cc:13:49: error: call of overloaded 'fun(<brace-enclosed initializer list>)' is ambiguous
   13 |     fun({std::begin(example), std::end(example)});
      |                                                 ^
prog.cc:4:6: note: candidate: 'void fun(const string&)'
    4 | void fun(const std::string& val) {
      |      ^~~
prog.cc:7:6: note: candidate: 'void fun(std::vector<std::__cxx11::basic_string<char> >)'
    7 | void fun(std::vector<std::string> val) {
      |      ^~~
Run Code Online (Sandbox Code Playgroud)

我知道它std::string有一个构造函数重载,它接受 …

c++ templates iterator overloading initializer-list

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