我最初的问题在这里,似乎没有人感兴趣。
我决定打破这个乏味的问题并提出以下问题:
char* shared_memory;
shared_memory = (char*) shmat (segment_id, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我们通常会像上面的例子那样获得指向共享内存的指针吗?换句话说,我们应该总是将指针投射到char*更适合我们需要的地方吗?
假设我们有一个指针(例如,定义为int*p)到数组的开头和数组的大小(例如,1000).我们想将所有1000个数组值重置为0.最简单的方法是什么?
#define MAX 265
std::cout << 0 * MAX << std::endl; //to my surprise, the output is 9 rather than 0
Run Code Online (Sandbox Code Playgroud)
这个C++宏乘法有什么问题?
编辑:
以下是完整版本.
#include <stdio.h>
#include <string.h>
#include <iostream>
#define NAME_BYTES 256
#define VERSION_BYTES 256
#define SIZE_BYTES 32
#define USED_LOCK_COUNT_BYTES 32
#define LOCK_NAME_BYTES 256
#define LOCK_TYPE_BYTES 1
#define PID_BYTES 4
#define TID_BYTES 4
#define LOCK_BYTES LOCK_NAME_BYTES + LOCK_TYPE_BYTES + PID_BYTES + TID_BYTES
#define HEADER_BYTES NAME_BYTES + VERSION_BYTES + SIZE_BYTES + USED_LOCK_COUNT_BYTES
int main() {
std::cout << "LOCK_BYTES: " << …Run Code Online (Sandbox Code Playgroud) 当我的类成员名称和成员函数名称相同时,G ++编译器会抱怨.似乎每当变量名称恰好与函数名称相同时,编译器就会抱怨.
在Java中,情况并非如此.我只是想知道为什么G ++编译器无法区分变量名和函数名,因为函数名总是带有一对括号.
我正在使用Java在具有32个虚拟处理器的服务器上进行Web爬网.我怎样才能充分利用这些处理器?我已经看到了一些关于多线程编程的建议,但我想知道如何确保所有处理器都能被利用,因为我们也可以在单处理器机器上进行多线程编程.
UPDATE
`universities`
SET
`universities`.countryid = `countries`.id,
FROM
`universities`
INNER JOIN
`countries`
ON
`universities`.country = `countries`.name
Run Code Online (Sandbox Code Playgroud)
当我尝试通过PhpMyAdmin运行上面的sql语句时,它会产生语法错误.我根据这个答案写了这些陈述.
CONSTANT = 1000000000000000000
array = (1..CONSTANT).to_a
start = Time.now
array.each do |i|
if 1000 < i < CONSTANT * 9 / 10
elsif i > CONSTANT * 9 / 10
else
end
end
finish = Time.now
puts "Running time: #{finish - start} seconds"
Run Code Online (Sandbox Code Playgroud)
我编写了上面的脚本,试图找出通过重新排序控制分支可以节省多少时间.该脚本在运行后立即冻结我的机器,无法通过CTL + C终止.有人可以指出那里发生了什么吗?
给一个void *变量作为输入(只能指向一个进程或线程),我想首先确定它的类型,然后将其转换为该类型.
我应该如何在C++中做到这一点?我知道这是一个愚蠢的问题,但我以前从未做过C/C++,也不能想到C/C++.
编辑:我需要在Linux和Windows上实现这一点.
只给出线程ID,是否有可能从那里决定线程是否仍然存在?我在谈论Linux上的C++.
在linux上,我们有pthread_kill()来做这件事.我正在尝试找到它的Windows对应物.
换句话说,给定一个线程ID,有没有办法来判断线程是否仍在运行?
GetExitCodeThread()是我发现的最接近的,但它需要线程句柄而不是线程id作为其参数.
c++ ×6
c ×2
pointers ×2
arrays ×1
freeze ×1
inner-join ×1
java ×1
linux ×1
macros ×1
method-names ×1
mysql ×1
phpmyadmin ×1
process ×1
pthreads ×1
ruby ×1
sql ×1
sql-update ×1
web-crawler ×1
windows ×1