我正在写一个Linux守护进程.我发现了两种方法.
fork()和设置来守护您的过程sid.&.这是正确的方法吗?
我有以下递归makefile:
.PHONY: all clean
%.subdir:
$(MAKE) -C src $*
$(MAKE) -C dict $*
all: all.subdir
clean: clean.subdir
Run Code Online (Sandbox Code Playgroud)
它工作正常:
$ make all
make -C src all
make[1]: Entering directory `/or-1.3.6-fix/src'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/or-1.3.6-fix/src'
make -C dict all
make[1]: Entering directory `/or-1.3.6-fix/dict'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/or-1.3.6-fix/dict'
Run Code Online (Sandbox Code Playgroud)
但将%.subdir规则定义为虚假更合乎逻辑:
.PHONY: all clean all.subdir clean.subdir
Run Code Online (Sandbox Code Playgroud)
现在让我停止工作:
$ make all
make: Nothing to be done for `all'.
$ make …Run Code Online (Sandbox Code Playgroud) 我有一个Visual Studio 2008项目,我"升级"到Visual Studio 2010.自升级以来,我一直遇到很多项目问题(一个项目过去和现在仍然是警察,我可能会添加).
第一个问题是构建主可执行文件会锁定可执行文件,从而导致进一步的重建失败.这是在一个相关的问题中描述的:Visual Studio在构建中锁定输出文件,我选择了解决方法:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
Run Code Online (Sandbox Code Playgroud)
除了这个解决方法只适用一次.然后.locked文件也被devenv.exe锁定,必须移动.我一直在通过添加.1.locked,.2.locked等来解决这个问题.唯一一次删除锁以便删除文件是关闭devenv.exe(UI后需要几秒钟)消失,然后可以删除文件).
调试器不必用于导致此问题的事实表明2010构建系统存在相当严重的问题.
我认为我可以打折的一些理论:
更新:此项目在没有防病毒且没有备份实用程序的计算机上具有相同的症状.办公室的机器运行XP SP3 32bit,我的本地机器是Windows 7 64位.这似乎与操作系统无关.
我有一个次要问题,一旦文件被锁定就开始出现:表单设计者停止加载"无法找到程序集"错误.我怀疑这些与早期的锁定问题有关,因为设计人员在构建之前就开始了,但是进行任何更改和重建都会导致所有设计人员崩溃并出现错误(即使是我已经打开并作为当前视图).
观看靠近白色错误屏幕的表单是可怜的,因为你将"dummy = 1"改为"dummy = 2",其中"dummy"绝对没有任何东西,只是强制重新编译一个完全不相关的程序集.
更新:我已经尝试了一些补救措施:未选中启用.NET源步进,因此这不是问题.删除.SUO(解决方案用户选项)只需重启通常可以解决问题(两个构建:第一个因为没有锁定文件而第二个因为有一个,但它可以由脚本重命名).
Error 28 Unable to copy file "obj\Debug\PolicyTracker3.exe" to "bin\Debug\PolicyTracker3.exe".
The process cannot access the file 'bin\Debug\PolicyTracker3.exe' because it is being used by another process.
Run Code Online (Sandbox Code Playgroud) 我正在尝试git-svn,我收到以下错误.到目前为止我所做的是
git svn init -T <my svn repo>
Run Code Online (Sandbox Code Playgroud)
然后我一直在用我的存储库提交
git commit -a
Run Code Online (Sandbox Code Playgroud)
然后,一旦我做了一些我做了一些
git svn fetch
Run Code Online (Sandbox Code Playgroud)
然后我试了一个
git svn dcommit
Run Code Online (Sandbox Code Playgroud)
然而,失败了
无法从HEAD历史记录中确定上游SVN信息.可能存储库是空的
我还可以看到我的文件系统中的文件没有标记为由svn使用(不确定是否应该发生).如果我浏览svn存储库(使用repo浏览器),我可以看到原始文件存在.
这种原始的失败之后我试过基础重建没有成功(它会引发某些其他错误).
我已将一个项目分成两个版本,并为每个版本分配一个plist文件.一切正常,但我一直得到这个构建警告:
警告:复制包资源构建阶段包含此目标的Info.plist文件"MyApp-Info.plist"
当我尝试构建时,我得到了这个MyApp.为第二个目标构建会产生相同的错误(SecondTarget-Info.plist在警告中).我不确定为什么它是一个警告,因为我希望构建包含该.plist文件.每个.plist文件都有一个目标成员资格(用于自己的构建).
这个警告意味着什么?有没有办法让它消失?
我需要处理一个计数器,它为我的应用程序提供了滴答声.计数器是32位,所以我需要知道的是如何在它包装时处理它.例如:
我有一个函数返回一个(timestamp + shifttime),我有另一个函数将返回1或0取决于时间是否已经过去,但我的计数器可能会包装如何处理这个? .
谢谢
非常感谢所有回复的人.我将在此编辑中提供更多详细信息.
我使用的是STM32 Cortex-M3.我想使用RTC计数器将其用作我的应用程序的滴答,以安排需要以特定间隔发生的任务.RTC可以产生溢出中断,因此检测中断不是问题.我遇到的主要问题(或者至少我认为是一个问题)是某些任务获得(时间戳+班次),即.
int main( void )
{
FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20
StatusLedTimeStamp = ReturnCounter( 3 ); // currentcounter value + a shift of 3
//then later on ....
while(1)
{
/* other tasks could go here */
if( HasTimeElapsed( FlashLedTimeStamp );
{
/* do something and get another timestamp value */
FlashLedTimeStamp = ReturnCounter( 20 ); // currentcounter value + a shift of 20 …Run Code Online (Sandbox Code Playgroud) 这个让我困惑.当我甚至没有打电话时,我收到关于寻找的错误?
我的代码看起来像这样:
// send 42
uint value = 42;
byte[] msg = BitConverter.GetBytes(value);
stream.Write(msg, 0, sizeof(uint));
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
System.NotSupportedException was unhandled
Message="This stream does not support seek operations."
Source="System"
StackTrace:
at System.Net.Sockets.NetworkStream.Seek(Int64 offset, SeekOrigin origin)
at System.IO.BufferedStream.FlushRead()
at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count)
...
Run Code Online (Sandbox Code Playgroud)
流是类型System.IO.BufferedStream.可能会发生什么?
编辑更多信息:
sizeof(uint)==msg.length在这种情况下.
流声明为stream = new BufferedStream(new NetworkStream(socket), 1024)
编辑:
就是这样!虽然可以在一个单独读取和写入NetworkStream,但当切换到BufferedStream它时,必须有一个单独的读取和写入.显然,只需NetworkStream在同一个套接字上调用构造函数两次即可.
如果可以的话,我会接受Justin和Hans的答案,因为我让我完全理解错误,另一个让我找到解决方案.感谢大家!
所以我一直在尝试在Box2D中重新创建Pong以学习如何使用引擎,我认为在其中创建pong比我想象的更复杂.我自己碰撞了,我将球恢复设置为1.0,我唯一的问题是我不知道如何让球击中桨,以正确的角度反弹并且有足够的速度到达另一侧.我只是希望它看起来像一个自然的Pong游戏.我看过c ++,actionscript但似乎没有人真正完全实现了乒乓球比赛.
我是否必须实施自己的物理学?