哪个问题可能会导致kill -9生产应用程序(在linux中准确)?
我有应用程序做一些定期工作,停止这些需要很长时间,我不在乎是否会中止某些工作 - 工作可以通过新流程完成.那么我kill -9可以立即使用它来停止它,否则会导致严重的操作系统问题?
例如,Unicorn将其用作正常的工作程序:
当您的应用程序出错时,BOFH可以"杀死-9"失控的工作进程,而不必担心会撕毁所有客户端,只需一个.
但是这篇文章声称:
kill(1)的-9(或KILL)参数永远不应该在Unix系统上使用
PS:我知道kill -9应用程序无法处理,但我知道对于应用程序来说它不会导致任何问题,我只是感兴趣它可以在操作系统级别上引起一些问题吗?shared memory segments active, lingering sockets对我来说听起来很危险
我正在尝试将二进制文件(例如可执行文件)读入字符串,然后将其写回
FileStream fs = new FileStream("C:\\tvin.exe", FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
System.Text.Encoding enc = System.Text.Encoding.ASCII;
string myString = enc.GetString(bin);
fs.Close();
br.Close();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] rebin = encoding.GetBytes(myString);
FileStream fs2 = new FileStream("C:\\tvout.exe", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs2);
bw.Write(rebin);
fs2.Close();
bw.Close();
Run Code Online (Sandbox Code Playgroud)
这不起作用(结果具有完全相同的字节大小但无法运行)
如果我做bw.Write(bin)结果没问题,但我必须将它保存为字符串
是否可以将新父级更改或分配给已存在于数据存储区中的Model实例?例如,我需要这样的东西
task = db.get(db.Key(task_key))
project = db.get(db.Key(project_key))
task.parent = project
task.put()
Run Code Online (Sandbox Code Playgroud)
但它不能这样工作,因为task.parent是内置方法.我正在考虑为任务创建一个新的Key实例,但也无法更改密钥.
有什么想法吗?
python google-app-engine transactions google-cloud-datastore
我正在尝试开发一个老式的NES风格的视频游戏,精灵闪烁和图形减速.我一直在想我应该用什么类型的逻辑来启用这样的效果.
如果我想要老式的NES风格,我必须考虑以下限制:
从我读过的内容来看,如果屏幕上有超过64个精灵,开发人员只会绘制高优先级精灵而忽略低优先级精灵.它们也可以交替,在奇数编号的相对帧上绘制每个偶数编号的精灵.
扫描线问题很有意思.从我的测试来看,通过像NES那样逐个像素地绘制精灵,不可能在XBOX 360 XNA框架上获得良好的速度.这就是为什么在老式游戏中,如果在一条线上有太多的精灵,如果它们被减半,就会出现一些.对于这个项目的所有目的,我将扫描线设置为8像素高,并通过Y定位将每个扫描线的精灵分组在一起.
为了澄清,我将以8x8像素,而不是1x1的批量绘制精灵到屏幕.
所以,愚蠢的我需要提出一个解决方案....
这是我目前的理论
首先,我提出的一个基本想法是解决精灵优先级问题.假设0-255(0为低)之间的值,我可以分配精灵优先级,例如:
在我的数据文件中,我可以将每个精灵分配为特定优先级.创建父对象时,精灵将在其指定范围之间随机分配一个数字.然后我会按照从高到低的顺序绘制精灵,最终目标是绘制每个精灵.
现在,当一个精灵被绘制在一个帧中时,我会在其初始优先级内随机生成一个新的优先级值.但是,如果没有在帧中绘制精灵,我可以将32添加到其当前优先级.例如,如果该系统可只画出精灵下降到135的优先级,具有45°的初始优先级的子画面然后可以后不被抽的3帧绘制(45 + 32 + 32 + 32 = 141)
理论上,这将允许精灵交替帧,允许优先级,并将精灵限制为每个屏幕64个.
现在,有趣的问题是我如何将精灵限制为每个扫描线只有8个?
我想如果我将精灵高优先级排序为低优先级,则循环遍历循环直到我达到64个精灵.但是,我不应该只列出列表中的前64个精灵.
在绘制每个精灵之前,我可以通过计数器变量检查在它的相应扫描线中绘制了多少个精灵.例如:
我可以为每个绘制的帧重置每条扫描线的值.在向下精灵列表的同时,如果在该扫描线中绘制了精灵,则向扫描线的相应计数器添加1.如果它等于8,则不绘制该精灵并转到具有下一个最低优先级的精灵.
慢一点
我需要做的最后一件事是模拟减速.我最初的想法是,如果我每帧绘制64个精灵并且还需要绘制更多的精灵,我可以将渲染暂停16ms左右.然而,在我玩过的NES游戏中,如果没有任何精灵闪烁,有时会减速,而即使有一些精灵闪烁,游戏也会漂亮地移动.
也许为每个在屏幕上使用精灵的对象赋予一个值(比如上面的优先级值),如果所有对象的组合值都超过阈值,那么引入减速?
结论...
我写的所有内容听起来是否合法且可行,或者它是一个白日梦吗?我可以用这个游戏编程理论思考哪些改进?
我需要创建一个类似于C lanquage的变量.我需要范围为0-255的字节或无符号字符.这个变量应该溢出,这意味着......
myVar = 255
myVar += 1
print myVar #!!myVar = 0!!
Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我,我需要使用mysql从结果集中获取最后4行.结果集共返回6条记录.
但是,我需要从last4获取记录...即,
Record-3
Record-4
Record-5
Record-6
Run Code Online (Sandbox Code Playgroud) 我使用SetupDiGetClassDevs 函数-MSDN 从系统获取设备列表。
我还可以从设备获取供应商 ID 和产品 ID。
但我无法获取驱动器号和安装路径
例如,如果我插入 USB 驱动器意味着,我必须获得像“G:/”这样的驱动器号
请帮助我获取设备的驱动器号和安装路径
if (SetupDiEnumDeviceInterfaces(hDevInfo,
NULL,&GUID_DEVINTERFACE_USB_DEVICE,i,&Interface_Info))
{
wprintf(L"\tDeviccvcvcveInstanceId : %d\n", i);
pspdidd->cbSize = sizeof(*pspdidd);
SP_DEVICE_INTERFACE_DETAIL_DATA *pDetData = NULL;
DWORD dwDetDataSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA) + 256;
pDetData = (SP_DEVICE_INTERFACE_DETAIL_DATA*) malloc (dwDetDataSize);
pDetData->cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA);
SetupDiGetDeviceInterfaceDetail(hDevInfo,&Interface_Info,pDetData,dwDetDataSize,
NULL,&DeviceInfoData);
qDebug ()<<QString::fromWCharArray( pDetData->DevicePath );
}
Run Code Online (Sandbox Code Playgroud) c++ ×2
python ×2
windows ×2
animation ×1
binaryfiles ×1
c# ×1
compilation ×1
graphics ×1
gtk ×1
kill ×1
linux ×1
mysql ×1
overflow ×1
sprite ×1
sql ×1
sql-order-by ×1
string ×1
transactions ×1
uml ×1
unicorn ×1
variables ×1
visual-c++ ×1
winapi ×1
xna ×1