我做了一个简单的程序,用GCC 4.4/4.5编译如下:
int main ()
{
char u = 10;
char x = 'x';
char i = u + x;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
g ++ -c -Wconversion a.cpp
我有以下内容:
a.cpp: In function ‘int main()’:
a.cpp:5:16: warning: conversion to ‘char’ from ‘int’ may alter its value
Run Code Online (Sandbox Code Playgroud)
我为以下代码得到了同样的警告:
unsigned short u = 10;
unsigned short x = 0;
unsigned short i = u + x;
a.cpp: In function ‘int main()’:
a.cpp:5:16: warning: conversion to ‘short unsigned int’ from ‘int’ may alter its …Run Code Online (Sandbox Code Playgroud) 我有两个不同大小的二进制文件.我需要在Linux中比较这些文件的前N个字节.我希望结果是"是"(相同)或"否"(不相同),而不是字节到字节的比较.N可以从KB到GB之间变化.
目前我正在使用以下方法:
head -c N input1.dat | rdiff signature >1.sig
head -c N input2.dat | rdiff signature >2.sig
diff 1.sig 2.sig
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有另一种方法,更简单.谢谢.
我有以下文件foo.cpp:
#include <vector>
struct MyClass
{
std::vector<int> v;
};
Run Code Online (Sandbox Code Playgroud)
它可以用clang成功编译(我在Ubuntu 13.04 32bit上使用clang 3.3):
clang++ -c foo.cpp
Run Code Online (Sandbox Code Playgroud)
现在我要打印AST:
clang++ -cc1 -ast-print foo.cpp
Run Code Online (Sandbox Code Playgroud)
我有以下错误
foo.cpp:1:10: fatal error: 'vector' file not found
#include <vector>
^
struct MyClass {
};
1 error generated.
Run Code Online (Sandbox Code Playgroud)
看起来好像clang++ -cc1不知道系统包含文件等.我想知道如何设置包括clang++ -cc1?
我有一个使用STL的项目很多.现在我正在努力将项目移植到不支持异常的特定平台.我可以禁用异常,但是我仍然需要处理STL错误.
是否有任何方法可以在禁用异常的情况下正确处理STL错误?是否有任何第三方STL实施有助于它?
我需要保护我的UDP流量.据我所知,DTLS协议是最好的方法.还有一个 - IPsec - 但它看起来不适合我,因为它不容易使用,并且可能存在硬件问题.
我发现有些库已经实现了DTLS.所以现在我想选择 - OpenSSL还是GnuTls?你能告诉我什么更好用吗?有什么缺点或优点?或者可能有另一个实施DTLS支持的库?
谢谢.
在调用 FuncHelper 之前,我正在尝试在 .WillOnce 中进行一些睡眠。所以我需要类似于以下内容:
EXPECT_CALL(*_mock, Func(_,_,_)).Times(1)
.WillOnce(DoAll(InvokeWithoutArgs(sleep(TimeToSleep)),
Invoke(_mock, &M_MyMock::FuncHelper)));
Run Code Online (Sandbox Code Playgroud)
是否可以在 .DoAll 中使用 arg 调用 sleep()?C++98 是首选。
更新:
该解决方案基于@Smeeheey 答案并使用 C++98。
template <int N> void Sleep ()
{
sleep(N);
}
...
EXPECT_CALL(*_mock, Func(_,_,_)).Times(1)
.WillOnce(DoAll(InvokeWithoutArgs(Sleep<TimeToSleep>),
Invoke(_mock, &M_MyMock::FuncHelper)));
Run Code Online (Sandbox Code Playgroud) 有一个小func函数可以将内存块与静态常量归零数组进行比较。这是一个原始示例来说明问题:
#include <cstring>
#include <memory>
#define MAX_BYTES (256)
inline int my_memcmp(const void * mem1, const void * mem2, const size_t size)
{
const auto *first = reinterpret_cast<const uint8_t *>(mem1);
const auto *second = reinterpret_cast<const uint8_t *>(mem2);
if (size < 8)
{
for (int i = 0; i < size; ++i) {
if (*first != *second) return (*first > *second) ? 1 : -1;
++first; ++second;
}
return 0;
}
return std::memcmp(mem1, mem2, size);
}
bool func(const uint8_t* in, …Run Code Online (Sandbox Code Playgroud) 我正在研究一些传统的Win32/MFC项目.
我发现了以下(伪代码):
HDC hDC = ::CreateCompatibleDC(hDCWnd);
HANDLE hFileMap = ::CreateFileMapping(INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, dwSize, FileMapName);
HBITMAP hBmp = ::CreateDIBSection(hDCWnd, &zBI, DIB_RGB_COLORS, &pvNull, hFileMap, 0);
::SelectObject(hDC, hBmp);
::DeleteObject(hBmp);
::CloseHandle(hFileMap);
// .. do something with hDC ..
::DeleteDC(hDC);
Run Code Online (Sandbox Code Playgroud)
这对我来说很奇怪.任何人都可以解释一下,在我对DC做某事之前删除位图和/或关闭文件句柄是否正确?
谢谢.
关于stackoverflow,是否可以在进程之间共享pthread互斥锁有很多问题,但是我没有发现有关共享互斥锁初始化的问题/答案。
据我了解,使用进程共享互斥锁的常用方法如下:分配共享内存块,在共享内存块上初始化pthread互斥锁,然后使用它。
在创建共享内存的情况下,如果多个进程尝试分配具有相同密钥ID的共享内存块,则由OS处理。好的,但是我不明白的是如何安全地在共享内存块上初始化互斥锁?
我对吗,pthread_mutex_init不提供任何安全的方法来从不同进程中同时初始化pthread_mutex_t?如果是,我如何为进程提供独占访问权限以初始化共享的“互斥”?以及如何确定另一个进程是否成功初始化了互斥锁?
第二个问题涉及阻止互斥锁的进程崩溃的情况。好了,有一个健壮的互斥锁可以处理这种情况并返回相应的错误代码。共享内存块呢?似乎一个进程应该注意是否是最后一个使用共享内存破坏它的进程。
从 Windows 10 Fall Creators Update(版本 16299.15)和 OneDrive build 17.3.7064.1005 开始,用户可以使用按需文件(https://support.office.com/en-us/article/learn-about-onedrive-files -on-demand-0e6860d3-d9f3-4971-b321-7092438fb38e )
现在,任何 OneDrive 文件都可以具有以下类型之一:仅在线、本地可用和始终可用。
使用 WinAPI 我如何知道该文件(例如“C:\Users\Username\OneDrive\Getting started with OneDrive.pdf”)是仅在线文件?
c++ ×5
linux ×3
winapi ×2
binaryfiles ×1
clang ×1
diff ×1
exception ×1
gcc ×1
gdi ×1
googlemock ×1
googletest ×1
include-path ×1
integer ×1
mutex ×1
onedrive ×1
openssl ×1
pthreads ×1
security ×1
stl ×1
udp ×1
unit-testing ×1
windows ×1