小编Har*_*ris的帖子

(char)0和'\ 0'之间有什么区别?在C.

使用(char)0'\0'表示字符数组中的终止空字符有什么区别?

c null-character

28
推荐指数
2
解决办法
3万
查看次数

在TurnJs Flipbook上动态放置大型HTML内容

我不确定这是否已经讨论过,我试着搜索问题列表但找不到与之相关的任何内容.

我有一个大的HTML内容,我需要使用turn.js绑定.我的问题是,使用转js,我将不得不将HTML拆分为单独的div标签作为页面.是否有一种方法在turn.js中绑定div上的内容,它会根据被绑定的内容自动包装到不同的页面?

或者有没有办法知道需要将多少数据绑定到每个页面才能使此方案正常工作.

html html5 turnjs

9
推荐指数
1
解决办法
2584
查看次数

为什么布尔数据类型没有在C中实现

我的一个朋友问了一个问题,为什么BooleanC编程语言中没有数据类型.我做了一些搜索和阅读.我在堆栈溢出中得到的问题和答案很少说,

  1. 所有数据类型都应该是可寻址的,并且无法解决一些问题.
  2. 主流CPU硬件级别的基本数据结构是一个字节.对这些CPU中的位进行操作需要额外的处理.

我们可以用这种方式使用bool

#define bool int
#define TRUE 1
#define FALSE 0
Run Code Online (Sandbox Code Playgroud)

或使用typedefs.

但我的问题是:即使经过这么多年,为什么它不是作为C中的数据类型实现的.实现一个字节数据类型来存储布尔值而不是使用intshort显式是没有意义的.

c boolean

9
推荐指数
2
解决办法
1373
查看次数

朋友的功能在这里继承吗?

fun()Derived类中的方法是私有的.当我们ptr->fun()通过运行时多态来调用函数时,它正在执行.但这违反了Derived类的封装属性.

#include<iostream>
using namespace std;

class Derived;

class Base {
private:
    virtual void fun() { cout << "Base Fun"; }
friend int main();
};

class Derived: public Base {
private:
    void fun() { cout << "Derived Fun"; }
};

int main()
{
Base *ptr = new Derived;
ptr->fun();
return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下发生了什么吗?

c++ polymorphism encapsulation private

6
推荐指数
1
解决办法
187
查看次数

连续序列数据中的模式

假设我有一个事件列表.例如A, D, T, H, U, A, B, F, H, ....

我需要的是找到完整序列中出现的频繁模式.在这个问题中,我们不能使用传统算法,如先验或fp增长,因为它们需要单独的项集.并且,我无法将此流分解为更小的集合.

知道哪种算法对我有用吗?


编辑

例如,对于序列A, D, T, H, U, A, D, T, H, T, H, U, A, H, T, H和with min_support = 2.

频繁的模式将是

Of length 1 --> [A, D, T, H, U]
Of length 2 --> [AD, DT, TH, HU, UA, HT]
Of length 3 --> [ADT, DTH, THU, HUA]
Of length 4 --> [ADTH, THUA]
No sequences of length 5 and further
Run Code Online (Sandbox Code Playgroud)

algorithm frequency data-mining sequence-analysis

6
推荐指数
1
解决办法
678
查看次数

打印编译时计算常量的方法

我正在做一些微控制器编程,并且我有以下代码:

#define F_CPU 8000000
#define F_ADC (F_CPU / 64.0)
#define T_ADC (1.0/F_ADC)
Run Code Online (Sandbox Code Playgroud)

有没有办法在编译时打印出 T_ADC 的计算值?我尝试将其字符串化

#define STRINGIFY(s) XSTRINGIFY(s)
#define XSTRINGIFY(s) #s
#pragma message ("T_ADC " STRINGIFY(T_ADC)) 
Run Code Online (Sandbox Code Playgroud)

但这只是给出了宏展开式“(1/(8000000/64))”,而不是实际值。

printf这是一个微控制器程序,在启动时执行此操作很尴尬。我正在使用 gcc,如果有帮助的话,我很乐意使用任何非标准 gcc 功能。

c microcontroller gcc

5
推荐指数
1
解决办法
3667
查看次数

GNU mingw编译器错误:sh:gcc:找不到命令

我已经使用在线说明下载了GNU编译器.在编译时,我继续收到以下错误:

sh:gcc:找不到命令

我试过在线搜索,但我没有运气.有谁知道为什么会这样,或者如何修复它?

PS我保存了mingw文件夹C:\mingw,我正在使用msys.bat在线建议的编译器,位于C:\mingw\msys\1.0.我试图编译的源.c文件位于D:\cfiles\task1.

感谢您的帮助

c gcc gnu gcc-warning

5
推荐指数
1
解决办法
1万
查看次数

使用PHP列出服务器上所有正在运行的进程

我正在尝试使用来获取当前在我的Ubuntu服务器上运行的所有进程的列表PHP。理想情况下,我想获得以下信息:

  • 进程ID
  • 用于执行过程的命令
  • 对过程的争论

我知道,我可以使用exec调用ps列出当前正在运行的进程。

exec('ps aux', $output);
Run Code Online (Sandbox Code Playgroud)

但是,输出使用任意数量的空格格式化,因此解析它并不是世界上最简单的事情。

我可能会使用explodepreg_split解析,但是有没有更简单的方法使用来获取所有正在运行的进程的列表php以及进程ID,命令和参数?

php linux ubuntu process ps

5
推荐指数
1
解决办法
9958
查看次数

格式字符串漏洞以segfault结尾

我正在阅读"黑客 - 剥削艺术"一书.

这是我用于利用格式字符串的代码的简化版本.

/* fmt_vuln.c */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char *argv[]){
  char text [1024];

  if (argc < 2){
    printf ("Usage: %s <text to print>\n", argv[0]);
    exit (0);
  }
  strcpy (text, argv[1]);
  printf ("The wrong way to print user-controlled input:\n");
  printf (text);
  printf ("\n");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我运行这个命令:

./fmt_vuln AAAA%08x.%08x.%08x.%08x.%08x.%08x.%08x.%08x
Run Code Online (Sandbox Code Playgroud)

我有:

The wrong way to print user-controlled input:
AAAA59055000.58e347a0.58b68620.ffffffff.00000000.fba56ac8.58a9fc58.41414141
Run Code Online (Sandbox Code Playgroud)

所以,我看到第8个格式参数是从格式字符串的开头读取的.

然后,当我运行命令时:

./getenv PATH ./fmt_vuln
Run Code Online (Sandbox Code Playgroud)

我得到了地址:

0x7ffe2a673d84
Run Code Online (Sandbox Code Playgroud)

所以我试着运行:(为了打印PATH变量)

./fmt_vuln $(printf "\x84\x3d\x67\x2a\xfe\x7f")%08x.%08x.%08x.%08x.%08x.%08x.%08x.%s
Run Code Online (Sandbox Code Playgroud)

我有:

The wrong …
Run Code Online (Sandbox Code Playgroud)

c formatting exploit path environment-variables

5
推荐指数
1
解决办法
982
查看次数

为什么用waitpid()替换了wait4()

我正在查看系统调用的文档,wait4()并在其手册页中编写了该文档

这些功能已过时;在新程序中使用waitpid(2)或使用waitid(2)

因此,我浏览了的文档,waitpid()发现两者之间存在差异。

waitpid()与的功能相同wait4(),但wait4()根据手册页,

另外,在指向的结构中返回有关子级的资源使用信息rusage

这两个系统调用定义如下

pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);

pid_t waitpid(pid_t pid, int *status, int options);
Run Code Online (Sandbox Code Playgroud)

现在,我还阅读了另一个系统调用,它完成了获取rusage孩子的任务,即getrusage()

因此,我可以理解,wait4()通过结合使用waitpid()和和,可以做同样的事情getrusage()


但是,我不了解的是,总是有很强的理由使系统调用过时。但是在这种情况下,感觉功能已被拆分。

  • 如果我想使用的组合waitpid()getrusage(),我要检查返回值的两倍,这是不是对的情况 wait4()
  • 另外,可以使用wait4()来获得rusage一个特定的孩子,但是waitpid()可以将rusage其所有孩子在一起(如果与一起使用RUSAGE_CHILDREN)。如果子进程多于少数,这听起来像是额外的开销。

为什么wait4()过时了?看来这使事情变得更加艰难。

c linux system-calls wait waitpid

5
推荐指数
1
解决办法
835
查看次数