我正在尝试编写一个程序,其中子进程在Linux上相互通信.
这些过程都是从同一个程序创建的,因此它们共享代码.
我需要他们可以访问两个整数变量以及一个整数数组.
我不知道共享内存如何工作,我搜索过的每一个资源都没有做任何事情,只会让我感到困惑.
任何帮助将不胜感激!
编辑:这是我迄今为止编写的一些代码的示例,只是为了共享一个int但它可能是错误的.
int segmentId;
int sharedInt;
const int shareSize = sizeof(int);
/* Allocate shared memory segment */
segmentId = shmget(IPC_PRIVATE, shareSize, S_IRUSR | S_IWUSR);
/* attach the shared memory segment */
sharedInt = (int) shmat(segmentId, NULL, 0);
/* Rest of code will go here */
/* detach shared memory segment */
shmdt(sharedInt);
/* remove shared memory segment */
shmctl(segmentId, IPC_RMID, NULL);
Run Code Online (Sandbox Code Playgroud) 我有这个文件夹结构:
package/
__init__.py
misc/
__init__.py
tools.py
subpackage/
__init__.py
submodule.py
Run Code Online (Sandbox Code Playgroud)
我在submodule.py,我想导入misc.tools.我不想使用绝对导入来导入package.misc.tools,因为那时我的包只能在PYTHONPATH上使用.所以我想使用相对导入.但是,我还想要导入的名称misc.tools,而不仅仅是tools.
可能吗?
我正在和我们想要分发的网络应用程序上的朋友一起工作,我们正在Django工作.
我想确保潜在用户的部署尽可能简单.似乎Django使用共享安装的库很多,我希望人们只需要下载我们的最新版本,解压缩,编辑配置文件或两个并开始使用,如wordpress等.
我已经习惯了ruby on rails风格的部署,你可以将你的宝石和插件活塞到供应商目录中,这就是你需要依赖的全部内容.
什么是类似的django方式来部署捆绑了所有依赖项的应用程序?我宁愿在安装后不必使用像easy_install这样的东西来拉下依赖关系.
这个Python Stack Overflow Answer看起来似乎是在正确的轨道上,但是有一个django特定的方式吗?这是一个解决的问题吗?
deployment django open-source web-deployment-project ruby-on-rails
给定一个类ThisClassShouldBeTheDataContext的实例作为视图的Datacontext
class ThisClassShouldBeTheDataContext
{
public Contacts Contacts {get;set;}
}
class Contacts
{
public IEnumerable<Person> Persons {get;set;}
public Person this[string Name]
{
get
{
var p = from i in Persons where i.Name = Name select i;
return p.First();
}
}
}
class Person
{
public string Name {get;set;}
public string PhoneNumber {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
如何绑定Contact["John"].PhoneNumber到文本框?
<TextBox Text="{Binding ?????}" />
Run Code Online (Sandbox Code Playgroud) 如果我有一个收藏品,例如Collection<String> strs,我怎样才能获得第一件商品?我可以打电话给Iterator第一个next(),然后扔掉它Iterator.有没有浪费的方法吗?
我正在使用Espresso逻辑最小化器来生成一组布尔方程的最小化形式.然而,我不是为可编程阵列逻辑(通常用于Espresso)生成逻辑,而是希望在标准微处理器上实现这些逻辑.麻烦的是,Espresso以连接的正常形式产生输出,这对于PAL来说是完美的,但对于x86或PPC来说却不是最佳的.
例如,Espresso完全忽略XOR - 在下面的Espresso输出中,子表达式(!B0&!B1&B2&!B3) | (!B0&!B1&!B2&B3)相当于(!B0&!B1&(B2^B3)).这种替换确实增加了表达式的门深度/关键路径,但是考虑到我正在查看具有足够数量项的表达式来完全饱和任何CPU周围的执行资源,似乎有必要权衡一些门深度以减少总的#指令.我还想扩展它以了解如何使用ANDC或NOR等指令,这些指令可以在我感兴趣的某些处理器上使用.
我正在看的CNF表达式示例:
O0 = (B0&!B1&!B2&B3) | (!B0&B1&B2&B3) | (!B0&!B1&B2&B3) | (B1&!B3) | (!B0 &!B2&!B3);
O1 = (B0&B1&!B2&B3) | (B0&!B1&B2&!B3) | (B0&B1&B2&!B3) | (!B0&!B1&B2&!B3) | (!B0&!B1&!B2&B3) | (!B0&!B1&B2&B3) | (!B0&!B2&!B3);
O2 = (B0&!B1&!B2&B3) | (B0&!B1&B2&!B3) | (B0&B1&B2&B3) | (!B0&B1&!B3) | (!B0&!B2&B3) | (!B0&!B1&B2&B3);
O3 = (!B0&B1&!B2&!B3) | (B0&B1&B2&B3) | (!B0&B1&B2&B3) | (B0&B1&B2&!B3) | (B0&!B1&!B2) | (!B0&!B1&B2&!B3) | (!B0&!B1&!B2&B3);
Run Code Online (Sandbox Code Playgroud)
所以,这是一个实际的问题; 按优先顺序排列:
你知道Espresso的选项或扩展名会产生我想要的那种表达吗?
您是否知道任何可以理解(或可以教授)各种门类型的布尔逻辑最小化工具,而不仅仅是为PAL制作CNF?
您是否知道使用其他类型的门将CNF表达式转换为表达式的算法?
如果你不知道它的算法,你知道或者可以想到任何有用的启发式方法吗?
(并且,以防万一你建议它 - 测试显示GCC和ICC(或者,我敢打赌,现有的任何其他C编译器)都不够聪明,不能从CNF表达式为我做特定于处理器的最小化 - 这真的很不错,但是检查两个-O3 -S的输出显示它们甚至无法捕捉到可以使用XOR的情况.
algorithm optimization boolean-logic conjunctive-normal-form
我已经将这个脚本放在一起,每天更新一个分叉的Github存储库文件夹.如果我从提示符调用它,它运行正常,但我可以'弄清楚如何在作为cron作业运行时可靠地利用我的id_rsa.这eval 'ssh-agent'是尝试做到这一点,但它没有看到任何积极的影响.
#!/bin/sh
LOGPATH=log.txt
eval 'ssh-agent'
cd /path/to/update/folder
echo "-------START UPDATE-------">$LOGPATH
echo "Updating repos:">>$LOGPATH
date "+%F %T">>$LOGPATH
COUNT=1
find . -maxdepth 1 -type d | while read dir; do
cd "$dir"
LEN=$"${#dir}"
if [ $LEN != "1" ]
then
echo "*********">>$LOGPATH
echo "$COUNT. " ${dir:2}>>$LOGPATH
/usr/local/bin/git pull upstream master>>$LOGPATH 2>> $LOGPATH
/usr/local/bin/git push origin master>>$LOGPATH 2>> $LOGPATH
let COUNT=COUNT+1
fi
cd "$OLDPWD"
done
echo "-------END UPDATE-------">>$LOGPATH
exit 0
Run Code Online (Sandbox Code Playgroud)
对于整个过程来说,这可能是一种非常低效的方式,但是它有效并且我从未见过它.如果我可以使用我的信用卡,我会很高兴.
我有一个使用MVC 2 Preview 2的Web应用程序,并且在注册了所有路由之后,我需要将每个路径包装在装饰器的下游.问题是,这样做会破坏路由.最终发生的是GetVirtualPath方法将错误地匹配应用程序中的其他区域(我正在使用单项目区域).装饰器是否做任何有用的事并不重要.使用以下passthrough是你需要打破它.
public class RouteDecorator: RouteBase
{
readonly RouteBase _route;
public RouteDecorator(RouteBase route)
{
_route = route;
}
public override RouteData GetRouteData(HttpContextBase context)
{
return _route.GetRouteData(context);
}
public override VirtualPathData GetVirtualPath(RequestContext context, RouteValueDictionary values)
{
return _route.GetVirtualPath(context, values);
}
}
Run Code Online (Sandbox Code Playgroud)
在注册所有路由后,我将在一个简单的循环中分配装饰器.
var routes = RouteTable.Routes;
for (var i = 0; i < routes.Count; i++)
{
routes[i] = new RouteDecorator(routes[i]);
}
Run Code Online (Sandbox Code Playgroud)
如何在不破坏路线和区域的情况下安全地插入装饰器?
我有一个可在此处下载的复制解决方案.在复制中,路线装饰器被注释掉.将其注释回来将会中断路由,并且第一个虚拟区域的路由数据将匹配通常仅正确匹配相应命名空间的链接.
我正在尝试使用带有python的通用feedparser从Google新闻下载一组新闻(尝试进行一些自然语言处理).我对XML一无所知,我只是使用了如何使用feedparser的示例.问题是我在dict中找不到我从RSS提要获得的新闻内容只是标题.
我目前正在尝试使用的代码是:
import feedparser
url = 'http://news.google.com.br/news?pz=1&cf=all&ned=us&hl=en&output=rss'
# just some GNews feed - I'll use a specific search later
feed = feedparser.parse(url)
for post in feed.entries:
print post.title
print post.keys()
Run Code Online (Sandbox Code Playgroud)
我在这篇文章中得到的关键只是标题,摘要,日期等......没有内容.
这是谷歌新闻的一些问题还是我做错了什么?有办法吗?
flash actionscript是否允许您联系特定端口上的任意服务器?
我想使用专有协议从服务器流式传输一些图像.
或者浏览器出于安全原因而不允许这样做?
python ×2
actionscript ×1
algorithm ×1
asp.net ×1
asp.net-mvc ×1
bash ×1
binding ×1
c ×1
collections ×1
cron ×1
deployment ×1
django ×1
feedparser ×1
flash ×1
github ×1
google-news ×1
import ×1
indexer ×1
iterable ×1
java ×1
open-source ×1
optimization ×1
properties ×1
routing ×1
rss ×1
scripting ×1
ssh ×1
wpf ×1
xaml ×1