小编McD*_*3ld的帖子

write(socket,buff,length)会导致崩溃

我有一个程序,用于向带有android的手机发送数据.我们是iamgine

//编辑

while(enviado < length) {
    printf("SEND\n");
    r = write(con, buff_enviar+enviado, length-enviado);
    printf(" OK\n");
    if (r > 0) enviado += r;
    else if (r == 0) { printf(" * >> Socket cerrado [datos] (%d)\n",r); return r; }
    else if (r == -1) { printf(" * >> Error [datos] (%d)\n",r); return r; }
}
Run Code Online (Sandbox Code Playgroud)

当我离开这个时,我改变了buff_enviar价值观.当我取消手机中的传输时,通过成功执行socket.close(),write使我的程序无缘无故结束.所以我的程序输出是:

SEND OK SEND OK SEND

我猜这是write错的,因为它没有打印好.ERRNO值为61(无数据)

我希望有人之前遇到过这个问题并解决了.

编辑:有时当我取消时,r = -1所以我可以处理错误,但大多数时候它只是终止程序.这就像是随机选择的.我糊涂了 :(

亲切的问候,劳尔

c sockets

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

使用特殊字符®复制目录

我正在制作一个批处理文件,将一些目录和子目录复制到一个安全的地方(备份目的).但是如果路径包含像®这样的特殊字符,则脚本不起作用.

:: Call Of Duty® 2
xcopy "F:\Archivos de Programa\Call Of Duty® 2\main\players" "D:\BackUp\savegames\Call Of Duty® 2\main\players\" /E /F /Y
Run Code Online (Sandbox Code Playgroud)

在控制台中,®显示为«,因此显示"未找到"例外.

我尝试过使用UTF-8和ANSI编码,但没有一个有效.

batch-file special-characters

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

C++中优雅的函数定义

我有以下功能:

void func1(int8_t input);
void func1(int16_t input);
void func1(int32_t input);
void func1(float input);
Run Code Online (Sandbox Code Playgroud)

的四个功能的实现是相同的,除了一些内部值,该值是根据输入类型(int8_t,int16_t,int32_tfloat).

目前我正在通过复制粘贴创建其他三个功能,但这非常繁琐.

有没有办法让我只编写1个函数(例如func1(int8_t input);),并且在构建时,其他三个函数是自动创建的?

或者这可以在不需要其他三个功能的情况下工作?任何其他解决方案都很受欢迎.

c++ macros function

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

标签 统计

batch-file ×1

c ×1

c++ ×1

function ×1

macros ×1

sockets ×1

special-characters ×1