RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-340923

Николай Николаевич's questions

Martin Hope
Николай Николаевич
Asked: 2022-02-14 23:14:48 +0000 UTC

为什么需要数字文字后缀?

  • 6

假设我要初始化一个变量:

float f = 1.0f;

在这里只会让我生气f

我知道最初 1.0 应该是一些类型double,但是如果1.0 它仍然适合有什么区别float?如果没有它们一切正常,为什么我们需要这些后缀?编译器不为我做类型转换吗?

c++
  • 3 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2021-11-07 04:53:01 +0000 UTC

如何将一个网络套接字分成两个?

  • 0

情况是这样的:客户端通过tcp协议连接到服务器,但这是一个连接,我需要在客户端程序运行时改变连接数。假设我想同时以不同的流向服务器发送数据,同时还从服务器接收其他数据,有很多客户端,所以在主套接字中创建一个新连接是不可行的,新连接必须具有在服务器和客户端上都具有与旧版本相同的特征。

给定:从服务器建立的连接(套接字)

查找:将这个连接分解为许多其他连接

解决方案: ???

linux
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-07-29 04:54:10 +0000 UTC

如何通过网络正确传送数据

  • 9

假设我在服务器上拨打了 3 次电话send

send(sock,"I",sizeof("I"),0);
send(sock,"Y",sizeof("Y"),0);
send(sock,"X",sizeof("X"),0);

在客户端,我打了 3 次电话recv

recv(sock,buf,sizeof(buf),0);
recv(sock,buf,sizeof(buf),0);
recv(sock,buf,sizeof(buf),0);

有时会发生三个 send 调用的执行速度比数据到达客户端的速度要快,所以第一个 recv 调用读取了三个 send 调用发送的所有数据,而第二个 recv 在预期中冻结,你必须做“安全网”:

客户端收到第一次send调用的数据,然后向服务器发送一个肯定响应,服务器上的下一个send调用只有在收到客户端的肯定响应后才执行,这非常集体农场,所以如果你知道一个正常的方式 - 写一个答案

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-07-29 02:24:02 +0000 UTC

数据能保证按照我发送的顺序送达吗?

  • 5

假设我在服务器上拨打了 3 次电话send

send(sock,"I",sizeof("I"),0);
send(sock,"Y",sizeof("Y"),0);
send(sock,"X",sizeof("X"),0);

在客户端,我打了 3 次电话recv

recv(sock,buf,sizeof(buf),0);
recv(sock,buf,sizeof(buf),0);
recv(sock,buf,sizeof(buf),0);

我不是网络专家:( tcp控制数据包的有序传递,这是否意味着服务器发送3次的数据将按照我发送它们的顺序到达?

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-07-04 04:47:02 +0000 UTC

许可协议如何在 debian 软件包中发挥作用?

  • 2

在 windows 上安装程序时,我得到一个窗口,要求我阅读许可协议,如果您同意,请选中该框,但是当我在 debian 系列的 linux 发行版上安装程序时,我什么都没有,我只是输入命令apt install имяпакета,程序安装在 PC 上,许可协议存储在一个文件中/usr/share/doc/имякаталога/copyright。

这有多正确,以这种方式建立的许可协议是否具有法律效力?

linux
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-06-11 23:15:43 +0000 UTC

如何在 Linux 上创建存储库?

  • 6

我已经用我的程序编译了一个 deb 包,我需要以某种方式分发它。我需要用户能够使用一个命令安装我的程序,apt install如果我需要添加存储库,可能需要两个命令。我该怎么做?

linux
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-06-07 23:43:58 +0000 UTC

如何在 gtk 中使用单独的线程?

  • 0

我创建了一个在后台更新页面的线程(删除小部件并插入新的小部件),但它的工作非常不可预测 - 有时分段错误飞出,然后 gtk 使程序崩溃,我同时使用了 POSIX 线程和 GLib。谷歌搜索,我意识到 gtk 是狗屎(线程不安全),那么我该如何使用线程呢?

找到一篇文章,但所有函数都已过时(编译器发誓),并且码头自己说应该从主线程调用所有 GDK 和 GTK 函数 https://subscribe.ru/archive/comp.soft.prog.gtk/ 201110/07074453.html 它可以工作,但编译器会发出关于已弃用功能的警告,敲击螺栓还是我可以以某种方式修复它?

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-06-06 02:32:46 +0000 UTC

如何处理按键事件信号?

  • 0

我将我的处理程序连接到press-key-event小部件信号:TextView

void event_return(GtkWidget *widget,GdkEventKey  *event,sig_data *data)
{
    if(event->keyval==GDK_KEY_Return){
        printf("\nEVENT_RETURN\n");
    }
}

也就是说,如果我按下一个键,Enter那么我的处理程序将工作,并且TextView该键不会进入小部件缓冲区(以及按下任何键)。就是这样,但是如果我添加sleep(1)到代码中:

void event_return(GtkWidget *widget,GdkEventKey  *event,sig_data *data)
{
    if(event->keyval==GDK_KEY_Return){
        printf("\nEVENT_RETURN\n");
        sleep(1);
    }
}

然后换行符将进入缓冲区。为什么会发生这种情况,如何完全拦截此信号而不将其跳过到缓冲区中?

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-05-20 03:31:02 +0000 UTC

GtkRevealer 是如何工作的?

  • 0

据我了解,这类似于gtk_widget_hideand gtk_widget_show,它仅通过动画隐藏或显示其子小部件。

我有一个GtkRevealer按钮所在的小部件,使用gtk_revealer_set_reveal_child(GTK_REVEALER(Revealer),FALSE);我尝试隐藏按钮的功能,但什么也没有出现,我不明白什么?

Gtk 版本 3.24.18

c
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-04-29 05:22:52 +0000 UTC

无法以另一个 Ubuntu 用户身份登录 mysql

  • 1

我无法通过终端连接:mysql -u 'asd'@'localhost' -p但是,通过 mysql 连接器一切正常,这是怎么回事?在此处输入图像描述

mysql
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-04-18 01:52:36 +0000 UTC

GtkNotebook - 如何在小部件之间切换?

  • 0

您需要在小部件之间切换:如果您按下购物篮按钮,则会打开购物篮小部件,如果您按下屏幕截图,则会打开带有屏幕截图的小部件。在此处输入图像描述

在此处输入图像描述

我想把所有的小部件都塞进 GtkBox 中,然后通过按下按钮,显示一些并隐藏其他的,但是当有很多这些小部件时,这是集体农场并且不方便。我找到了一些 GtkNotebook 和 GtkStack 容器,它们似乎可以让你在第一张和第二张照片上制作一个像窗口一样的界面,将 GtkNotebook 塞到项目中,但我仍然不明白如何切换小部件 在此处输入图像描述

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-04-11 02:14:41 +0000 UTC

如何在屏幕上动态添加标签?gtk+

  • 1
for(int i =0;i<14;++i){
    gtk_box_pack_start(GTK_BOX(MessagesBox),gtk_label_new("метка"),0,0,0);
    gtk_widget_show_all(MainWindow);
    sleep(1);
}

理论上,每次迭代后,应该显示一个更新的新窗口,但它仅在调用后显示gtk_main(),为什么会发生这种情况,如何动态添加新标签到屏幕?

c
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-04-06 22:22:30 +0000 UTC

Glade. 需要让窗口自动滚动

  • 0

该容器GtkScrolledWindow包含一个滚动条容器GtkViewport,其中放置了一个用于与键盘交互的窗口GtkTextView 在此处输入图像描述

问题: 我正在输入文本,但是当它超出此窗口时,我必须自己滚动小部件以查看我接下来写的内容,当文本超出其原始大小时,我需要使窗口自动滚动在此处输入图像描述 在此处输入图像描述

c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-03-17 03:30:42 +0000 UTC

如何以给定的角度移动物体?

  • -1

假设一个物体有坐标 (x, y) 和一个角度,如果角度是 0 度,那么物体直线运动,如果是 90,那么向右,向后 180,向左 270 和 360 - 直线,但是如果角度不是90度,还有40?那怎么搬?

c
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-02-29 16:04:07 +0000 UTC

主机ip不显示,getaddrinfo函数

  • 0
struct sockaddr_in* addr;
struct addrinfo *hints;
struct addrinfo servinfo;
memset (&servinfo, 0, sizeof (servinfo));
servinfo.ai_family=AF_INET;
servinfo.ai_socktype=SOCK_STREAM;
int i=getaddrinfo("www.google.com","80",&servinfo,&hints);

addr=(struct sockaddr_in*)hints->ai_addr;
printf("ip: %s\r\n",inet_ntoa(addr->sin_addr));

我正在尝试显示主机(Google)的 ip,但出现分段错误,我也尝试像这样输出它:

printf("ip: %s\r\n",hints->ai_addr->sa_data);

但同样的错误发生在这里。


为了可读性,这里我删除了所有错误检查,但它们存在于我的代码中,没有错误出现,getaddrinfo 正常工作,可能错误在最后两行:

addr=(struct sockaddr_in*)hints->ai_addr;
printf("ip: %s\r\n",inet_ntoa(addr->sin_addr)); 

我做错了什么?所有代码:

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
void sendall(int socket,char*buf,int size);
int recvall(int socket,char*buf,int size);
int main(int argc, char const *argv[])
{
    int sock=socket(AF_INET,SOCK_STREAM,0);
    struct sockaddr_in* addr;
    addr->sin_family=AF_INET;
    addr->sin_port=htons(80);

    struct addrinfo *hints;
    struct addrinfo servinfo;
    memset (&servinfo, 0, sizeof (servinfo));
    servinfo.ai_family=AF_INET;
    servinfo.ai_socktype=SOCK_STREAM;
    int i=getaddrinfo("www.google.com","80",&servinfo,&hints);/*servinfo 
задает параметры возвращаемых адресов
т.е если мы сделаем так servinfo.ai_socktype=SOCK_STREAM;, то нам 
вернутся 
адреса хостов работающих на tcp сокетах*/
//в hints записывается вся информация о хосте
    if(i!=0){
        perror("getaddrinfo");
        printf("%d\n",i );
    }
    switch(i){
        case EAI_FAMILY:printf("EAI_FAMILY\n");break;
        case EAI_SOCKTYPE:printf("EAI_SOCKTYPE\n");break;
         case EAI_BADFLAGS:printf("EAI_BADFLAGS\n");break;
        case EAI_NONAME:printf("EAI_NONAME\n");break;
        case EAI_SERVICE:printf("EAI_SERVICE\n");break;
        //case EAI_ADDRFAMILY:printf("EAI_ADDRFAMILY\n");break;
        //case EAI_NODATA:printf("EAI_NODATA\n");break;
        case EAI_MEMORY:printf("EAI_MEMORY\n");break;
        case EAI_FAIL:printf("EAI_FAIL\n");break;
        case EAI_AGAIN:printf("EAI_AGAIN\n");break;
        case EAI_SYSTEM:printf("EAI_SYSTEM\n");break;

    }
    //addr.sin_addr.s_addr=htonl(getipaddr.h_name);
     addr=(struct sockaddr_in*)hints->ai_addr;
    printf("ip: %s\r\n",inet_ntoa(addr->sin_addr));

    return 0;
}
void sendall(int socket,char*buf,int size)
{
    short int len,total=0;
    do{
        if((len=send(socket,&buf[total],size-total,0))==-1){
            perror("sendall");
            exit(1);
        }
       total+=len;
    }while(total!=len);
}
int recvall(int socket,char*buf,int size)
{
    short int total=0,len;
    do{
    len=recv(socket,&buf[total],size-total,0);
    fprintf(stderr, "asdasdasdasdasd,total%dlen%d\n",total,len );
    switch(len){
        case -1:
       perror("recv2");
       exit(1);
       case 0:
       return 0;
    }
    total=total+len;
     }while(buf[total-1]!='\0');
    return total;
}
c
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-12-23 05:14:28 +0000 UTC

如何在 ubuntu 18th 版本上安装 opencv 以使用 c 语言?[复制]

  • 1
这个问题已经在这里得到了回答:
引用未解决的外部符号(可能的原因) 5 个答案
2年前关闭。

大家好,在ubuntu 18th版本上找不到安装opencv库的方法,用于用C语言编写程序,试了很多方法,但都不行,很多未定义的链接飞出来,这是一张照片在此处输入图像描述

在此处输入图像描述

我怎样才能安装这个库?

c
  • 2 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-11-01 03:52:00 +0000 UTC

找不到正确的 GRANT OPTION 删除语法

  • 0

我写REVOKE GRANT OPTION ON DELETE ON FROM 'dimalox'@'localhost';了,mysql输出这个-

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'DELETE FROM 'dimalox'@'localhost'' 附近使用正确的语法

书中查询是这样写的,网上也有,但是mysql报错,怎么回事?

mysql
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-10-29 05:43:47 +0000 UTC

自联接:我不明白为什么表输出顺序不能正常工作

  • 0

1.SELECT * FROM clown_info AS C1 INNER JOIN clown_info AS C2 ON C1.id = C2.boss_id; 在此处输入图像描述

2.SELECT * FROM clown_info AS C1 INNER JOIN clown_info AS C2 ON C2.id = C1.boss_id; 在此处输入图像描述

我不明白为什么在第一个查询中,老板显示在左边,而他们的下属显示在右边,尽管一切都应该反过来。在第二个请求中,我改为C1.id = C2.boss_id 现在C2.id = C1.boss_id老板在右边,下属在左边,我不明白为什么会这样,我会感谢解释))

mysql
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-09-07 21:35:49 +0000 UTC

如何在android上运行C代码

  • 0

伙计们,我开始用 C 语言做我的第一个独立的小项目,在终端上做一个信使,在 Linux 和 Windows 上,我知道怎么做,但是如何让这个聊天在 android 的终端上工作,请解释一下我能学到什么,也许有任何适用于 android 的库,或者通常为 linux 编写的代码适用于 android(它也是基于 linux 内核构建的)?我将非常感谢您的回答。

android
  • 1 个回答
  • 10 Views
Martin Hope
Николай Николаевич
Asked: 2020-08-28 03:50:33 +0000 UTC

信号处理程序无法正常工作

  • 2

在这里,我正在创建一个处理程序:

struct sigaction act;
act.sa_handler=handler;
sigaction(SIGINT,&act,NULL);

处理函数本身handler:

void handler()
{
   reset_canonical_mode();
   system("clear");
   exit(1);

}

当我按CTR + C,理论上应该调用函数handler,调用,但是我不明白它是如何工作的,reset_canonical_mode();根本没有调用函数。为什么会这样?请解释如何响应 SIGINT 信号清除终端、显示消息并关闭进程?

linux
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5