小编PP.*_*PP.的帖子

如何使用 apr_file_open() 创建文件

我对 Apache Portable Runtime 库(版本 1.4)进行以下调用:

result = apr_file_open(
    &file, // new file handle
    pathname, // file name          
    APR_FOPEN_CREATE | // create file if not there 
    APR_FOPEN_EXCL | // error if file was there already
    APR_FOPEN_APPEND | // move to end of file on open
    APR_FOPEN_BINARY | // binary mode (ignored on UNIX)
    APR_FOPEN_XTHREAD | // allow multiple threads to use file
    0, // flags
    APR_OS_DEFAULT |
    0, // permissions
    pool // memory pool to use
);

if ( APR_SUCCESS …
Run Code Online (Sandbox Code Playgroud)

c apr apache-portable-runtime

4
推荐指数
1
解决办法
2337
查看次数

C++是否将构造和复制优化为复制构造函数?

C++编译器是否自动转换:

MyObject object2 = object1;
Run Code Online (Sandbox Code Playgroud)

MyObject object2( object1 );
Run Code Online (Sandbox Code Playgroud)

或者它是否像对待它一样:

MyObject object2;
object2 = object1;
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
182
查看次数

如何添加到无效?

在尝试减少一些默认哈希码的同时,我发现你可以添加到none来生成任何哈希代码或者生成你要添加的内容.这有什么特别的原因吗?这会改变不同的架构还是我可以依靠这种能力?

DB<1> print none + 1

DB<2> print 1 + none
1
Run Code Online (Sandbox Code Playgroud)

而对于那些好奇的人来说,这就是我使用它的方式

foreach (@someArray) {
    unless ($someHash{$_}++) {
        $someHash{$_} = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

作为减少

foreach (@someArray) {
    if (exists $someHash{$_}) {
        $someHash{$_}++;
    } else {
        $someHash{$_} = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
295
查看次数

禁用错误qw外括号的Perl警告

自从最近升级Debian以来,我已经让Perl抱怨qw运算符周围没有额外的括号.

作为系统管理员,这是不可接受的.它打破了mod_perl应用程序的左,右和中心.

如何在禁用此警告的情况下运行Perl?我可以用Perl解释器运行一个标志吗?请注意,编辑源不是一个选项.

perl

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

在Perl代码中重构变量名的推荐方法?

我可以使用Perltidy重新格式化源代码.非常有用.

如果源文件使用类似的变量@m,我怎样才能最容易地将其重构为其他内容,例如@miles_travelled

使用正则表达式进行重命名似乎不安全,因为$m可能还存在单独的变量(使用不同的类型,在本例中为标量),但@m可以使用类似的表达式引用变量$m[$i].

例如,对于Perl代码,以下都不正确:

  • s/([\$\@])m/$1miles_travelled/g #将使用相同的名称重命名标量
  • s/\$m/\$miles_travelled/g #将无法重命名数组的访问权限

是否有推荐的工具或方法在Perl代码中安全地重命名变量名?

perl refactoring

2
推荐指数
1
解决办法
169
查看次数

在C中使用char类型进行位交换

数据类型为char,模式如下:

源字节:[0] [1] [2] [3] [4] [5] [6] [7]

目的地:[6] [7] [4] [5] [2] [3] [0] [1]

例如,如果我将char,29传递给此函数,它将执行交换并返回一个char类型值,即116.

我怎样才能进行交换?

谢谢.

========================

只是想知道我是否可以这样做?

unsigned char mask = 128;
char num = 0, value1 = 29;
int i, a;

for(i = 0; i < 8; i++) {
  if (i == 0 || i == 1 || i == 6 || i == 7)
    a = 6;
  else
    a = 2;

  if(i < 4)
    num = ((value1 & mask) >> a);
  else
    num …
Run Code Online (Sandbox Code Playgroud)

c swap bit-manipulation char

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

我可以在不使用泛型的Java中获取一个入口集中的键列表吗?

我在JMeter中使用BeanShell.BeanShell是一个不支持泛型的Java解释器.一旦我输入一个尖括号(例如"<"),我的脚本就会被拒绝.

如果我可以使用泛型,我会做以下事情:

for ( Map.Entry<String,Object> entry : vars.entrySet() ) {
    System.out.println( "  key = " + entry.getKey() );
}
Run Code Online (Sandbox Code Playgroud)

但是我无法创建变量条目,因为我不允许Map.Entry<String,Object>在我的脚本中声明.

所以 - 给定我的方法entrySet()和它返回的类型Set<Map.Entry<String,Object>>是否有任何方法可以获得(或迭代)此集合中的键列表而不明确引用泛型类型?

例如:

for ( String keys : vars.entrySet().somethingMagic() ) {
    System.out.println( "  key = " + key );
}
Run Code Online (Sandbox Code Playgroud)

java generics jmeter beanshell

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

在c ++ map中查找最大元素

我们有C++ map<double, class_name> mymap.我们给了一些双倍的X.

任务是在mymap中找到与小于等于的最大键相关联的值X.如果X小于mymap返回的最低键,则返回之前声明的一些默认值.

我的方法是迭代mymap并找到小于或等于的最大键X

double max = std::numeric_limits<double>::lowest();

for ( auto ii=mymap.begin(); ii!=mymap.end(); ++ii ) {
  if (
    (*ii).first <= value && 
    (*ii).first > max
  ) {
    max = (*ii).first;
  }
}

if ( max==std::numeric_limits<double>::lowest() )
    return defaultValue;

return colorset.find(max)->second;
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我是c ++地图的新手,所以我想知道可能有更好的方法来实现这个任务吗?

我想提出的算法的复杂性是O(n),可能有一种方法可以找到它O(log n)或者甚至更好的复杂性或内存分配?

c++ stl map

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

我如何在Visual Basic中执行循环

我用C,Pascal,GWBasic,TCL,Perl,Lisp编程,但Visual Basic对我来说太先进了.

FOR j = 1 TO 31
  output_to_webpage "<p>Counter is " + j + "</p>"

  myDay = "" + j
  IF j < 10 THEN myDay = "0" + j

  MyStr = MyStr + ",j"
NEXT
Run Code Online (Sandbox Code Playgroud)

循环永远不会发生.虽然如果我注释掉对循环变量的任何引用j,它似乎循环.

我怎样才能真正实现Visual Basic循环.或错误.没有默默地假装那里根本没有FOR循环?

更新:如果循环的第一个语句只是一个简单的调试语句,我希望它总是至少执行一次,即使循环的其余部分被中止.但是,正如下面所指出的,对循环变量使用算术会导致整个循环甚至不执行一次.甚至不是循环内的初始调试语句.我觉得很奇怪.

vbscript asp-classic

-3
推荐指数
1
解决办法
728
查看次数