小编San*_*Pai的帖子

选项以在gedit中显示控制字符

我是Linux的新手.有没有办法在gedit中查看控制字符.我去了options-> preferences,我得到的只是查看文本文件行号的选项.是否有任何插件需要安装才能看到相同的内容?我在Ubuntu 12.04 LTS上,gedit版本是3.4.1.

linux gedit

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

信号和非信号状态的事件

对于所有人来说,这可能是一个非编程问题,我读过有关线程同步对象(如事件)以及如何将其设置为信号状态或非信号状态.但是我无法理解这些用信号发出的信号和非信号 .每个人都用不同的方式表达,我有点困惑.

  1. 这个链接表明

    信号状态表示资源可供进程或线程使用它.未发信号状态表示资源正在使用中.

  2. 我从一个大学网站上得到了一个强力点演示文稿

    处于信号状态的对象不会导致等待对象阻塞的线程和未处于信号状态的对象将导致等待该对象的任何线程阻塞,直到该对象再次发出信号.

  3. 第三个链接说明了这一点

    处于信号状态的事件意味着它具有释放等待该事件发出信号的线程的能力.事件处于非信号状态意味着它不会释放等待此特定事件的任何线程.

通过示例对此概念进行简单解释将非常有用.

c winapi multithreading

12
推荐指数
3
解决办法
7499
查看次数

Devfs和dev文件系统有何不同

我读了关于devfs(称为设备文件系统)以便于设备驱动程序编程,如linux设备驱动程序文本中所述.如何不同的是devfs的距离的/ dev在linux.Are他们都一样吗?目录,我很困惑.

linux kernel device-driver linux-device-driver

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

批处理文件打开多个命令提示并执行相同的任务

我想要一个批处理脚本,只需单击即可打开多个命令提示符,并反复运行相同的命令.我写了一个下面的代码,只打开一个命令提示符并停在那里.有一种方法可以做同样的事情.

   for /l %%x in (1, 1, 5) do (
    start cmd /c 
    cd / && dir /s
   )
Run Code Online (Sandbox Code Playgroud)

cmd batch-file

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

vm_area_struct 中的 unsigned long vm_pgoff

我正在阅读 Linux 设备驱动程序的内存管理章节,并且遇到了vm_area_struct。该结构有一个偏移字段,即 unsigned long vm_pgoff

我检查了该会员的评论为 /* Offset (within vm_file) in PAGE_SIZE units, *not* PAGE_CACHE_SIZE */。我不太确定它是 vma 区域内的偏移量还是内存映射文件内的偏移量。

我已经看到驱动程序的 mmap 实现代码具有以下行,通过将成员移位PAGE_SHIFT位来再次重新计算偏移量。

unsigned long off = vma->vm_pgoff << PAGE_SHIFT;
Run Code Online (Sandbox Code Playgroud)

我无法理解相同的内容,对此的任何帮助都会很棒。

c linux-device-driver

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

使用WSAAddressToString时的问题

问题:我正在尝试使用WSAAddressToString函数来获取计算机的IP地址.我在他们的网站上浏览了msdn文档,结构中有太多结构,我觉得这是我出错的地方.代码在这里pastebin链接中提供 .请让我知道我哪里错了.

解答:在代码中包含WSAStartup函数并在现有代码中进行一些修改后,问题得以解决.完整的代码在pastebin中,修改后的部分在下面.

     retval = WSAStartup(MAKEWORD(2, 2), &wsaData);
      if (retval != 0)
      {
          printf("WSAStartup() failed with error code %d\n", WSAGetLastError());
            return 1;
      }
   else
       printf("WSAStartup() is OK...\n");


        size=256;

        lp=pAddresses->FirstUnicastAddress->Address.lpSockaddr;
        size2=pAddresses->FirstUnicastAddress->Address.iSockaddrLength;
        if(WSAAddressToStringA(lp,size2,NULL,op,&size)!= 0)
        {
                    printf("This thing has failed \n");
                    printf("errordetail: %i\n", WSAGetLastError());

                    return 1;
        }
        else
                    printf("\t The ip address is  = %s\n", op);
Run Code Online (Sandbox Code Playgroud)

c++ winapi wsastartup

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

结构末尾的未命名位域的目的是什么

我正在学习C.在C Primer Plus中,我看到了一个字段示例如下:

struct box_props {
    bool opaque               : 1;
    unsigned int fill_color   : 3;
    unsigned int              : 4;
    bool show_border          : 1;
    unsigned int border_color : 3;
    unsigned int border_style : 2;
    unsigned int              : 2;
};
Run Code Online (Sandbox Code Playgroud)

我知道中间的4位未命名位字段用于让以下位从一个新字节开始.但是,我不明白为什么在结构的末尾有另一个未命名的位字段.它的目的是什么?有必要吗?

c memory-alignment bit-fields

4
推荐指数
2
解决办法
1627
查看次数

警告:未知的转义序列 '\

我正在尝试通过代码中的系统命令运行正则表达式,我已经浏览了 StackOverflow 中类似警告的线程,但我无法理解如何修复以下警告,它似乎仅适用于封闭括号在做\\}。警告似乎消失了,但无法在重定向文件中获得确切的输出。

#include<stdio.h>


int main(){

        FILE *in;
        char buff[512];

if(system("grep -o '[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}' /home/santosh/Test/text >t2.txt") < 0){
                printf("system failed:");
                exit(1);
        }
}
Run Code Online (Sandbox Code Playgroud)

警告:

dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c:9:11: warning: unknown escape sequence '\}'
dup.c: In function 'main':
Run Code Online (Sandbox Code Playgroud)

c regex

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

字符串长度错误

我正在使用fgets函数从stdin读取字符串,然后尝试打印字符串的长度,但是我总是第一次得到字符串的长度为1这是我的代码

#incldue<stdio.h>
#include<string.h>
int main(void)
{
   printf("\n Enter the no of test cases");
   scanf("%d",&t);
   int i,j;
   for(i=0;i<t;++i)
   {
     char song[500],val[28];
     int k=0,x=0;
     fgets(song,500,stdin);
     int len=strlen(song);
     printf("\nlen=%d",len);
   }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我总是得到1作为第一个测试用例的长度:/请建议我哪里出错了

c string loops

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

在类外访问私有静态变量

一段时间后,我正在使用 C++,我已将类内的静态变量声明为私有,据我所知,静态变量独立于对象并在对象之间共享。如果我尝试在类外打印静态变量,则使用我得到编译错误的类名是因为变量是私有的吗?我确实读到静态变量可以仅通过类名和作用域解析运算符来访问。

#include <iostream>

using namespace std;

class Sample{

    int val;
   static int value;
    public:


        Sample(int in);
        Sample();
        void setval(int in){

            val = in;
        }

        void printval ()const{

            cout << val<<endl;
        }

};

Sample::Sample(int in){

    val = in;
}

Sample::Sample(){

    val = 0;
}

int Sample::value = 34;
int main()
{

   const Sample obj(1);
   Sample obj2;

   obj2.printval();

   obj.printval();

  cout <<"static value = " << Sample::value;

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误

main.cpp:37:5: error: 'int Sample::value' is private                                                                                                                                                  
 int Sample::value = 34;                                                                                                                                                                              
     ^ …
Run Code Online (Sandbox Code Playgroud)

c++

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