小编Car*_*ers的帖子

printf和vprintf函数系列之间有什么区别,什么时候应该使用另一个?

据我了解,之间的差别printf,fprintf,sprintf等功能和vprintf,vfprintf,vsprintf等功能,与他们如何应对函数的参数做.但具体怎么样?有没有理由使用一个而不是另一个?我是否应该总是使用printf,因为在C中看起来更常见,或者是否有合理的理由选择vprintf?

c

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

什么样的C是写入的操作系统?

有意义的是像操作系统这样的东西会用C编写.但它有多少,以及什么样的C?我的意思是,在C中,如果你需要一些堆内存,你可以调用malloc.但是,操作系统甚至有堆吗?据我所知,malloc 向操作系统询问内存,然后将其添加到链表,二叉树或其他内容.调用堆栈怎么样?操作系统负责设置其他应用程序使用的所有内容,但它是如何做到的?如果要在C中打开或创建文件,相应的函数会向操作系统询问该文件.所以...那个电话的另一边有什么样的C?或者在内存分配的另一端?

另外,实际上用C编写了多少操作系统?所有的?架构相关代码怎么样?那些更高级别的抽象怎么样?是否用高级语言编写,比如C++?

我的意思是,我只是出于纯粹的好奇而问这个问题.我现在正在下载最新的Linux内核,但这需要永远.我不确定我是否能够遵循代码 - 或者我是否会陷入一个我从未见过的不可避免的复杂网络中.

c kernel

47
推荐指数
4
解决办法
4618
查看次数

功能编程最好/最差的问题是什么?

我经常听说函数式编程解决了许多在程序/命令式编程中难以解决的问题.但我也听说过程序编程自然很擅长的其他一些问题并不是很好.

在我打开关于Haskell的书并深入研究函数式编程之前,我至少想了解一下我能用它的基本概念(在本书的例子之外).那么,函数式编程擅长的是什么呢?它不适合的问题是什么?

更新

到目前为止,我已经得到了一些很好的答案.我迫不及待地开始学习Haskell - 我只需要等到我掌握C :)

函数式编程很棒的原因:

  • 非常简洁和简洁 - 它可以用简短的,未经过混淆的陈述表达复杂的想法.
  • 比命令式语言更容易验证 - 在系统安全至关重要的地方很好.
  • 函数的纯度和数据的不变性使得并发编程更加合理.
  • 非常适合脚本编写和编写程序(我很高兴知道为什么).
  • 数学相关的问题简单而精美地解决了.

函数式编程困难的领域:

  • 有争议的:网络应用程序(虽然我猜这取决于应用程序).
  • 桌面应用程序(虽然它可能取决于语言,F#会擅长这个不是吗?).
  • 任何性能至关重要的东西,比如游戏引擎.
  • 任何涉及大量程序状态的东西.

haskell functional-programming

42
推荐指数
4
解决办法
6817
查看次数

为什么Google会使用字体标记?

所以,在向我的兄弟演示Chrome浏览器的DOM浏览器时,我不禁注意到Google使用了<font size=-2>标签.

我知道这是一个愚蠢的问题,但从编程的角度来看 - 为什么他们会在Google上使用弃用的标签?是因为它比使用它更小<p class="whatever">,然后为它创建一个样式,或者只是去<p style="font-size: x-small">?

html css web-standards minify

40
推荐指数
3
解决办法
2984
查看次数

如何阻止PHP通知出现在wordpress中?

我知道error_reporting(0);,和ini_set('display_errors', false);,但没有出现在WordPress的通知:

注意:第359行/var/www/vhosts/treethink.net/subdomains/parkridge/httpdocs/wp-includes/formatting.php中的数组到字符串转换

它只是出现在WordPress的,而不是在该网站的任何其他页面.

我检查了phpinfo(),一切都已设置,以便不显示错误.为什么这个仍然出现?

以下是生成错误的行:

function wp_check_invalid_utf8( $string, $strip = false ) {
    $string = (string) $string;
Run Code Online (Sandbox Code Playgroud)

我确实在wordpress中改变了一些东西,改变了画廊的工作方式.但不是这个函数,我也不认为我改变了对这个函数的任何调用.除了出现的通知,一切似乎都运行得很好,我只需要隐藏这个错误.

php wordpress error-reporting

27
推荐指数
3
解决办法
4万
查看次数

简单的SQLAlchemy关系如何工作?

我不是数据库专家 - 我真的知道基础知识.我已经为一个小项目选择了SQLAlchemy,我使用的是声明式基本配置,而不是"正常"方式.这种方式似乎更简单.

但是,在设置我的数据库模式时,我意识到我不了解一些数据库关系概念.

如果我之前有多对一的关系,例如作者的文章(每篇文章只能由一位作者撰写),我会author_id在我的articles专栏中添加一个字段.但SQLAlchemy有这个ForeignKey对象,以及与backref kwarg的关系函数,我不知道它有什么意思.

我很害怕找出与中间表的多对多关系(当我需要关于每个关系的额外数据时).

有人可以为我揭开这个神秘面纱吗?现在我正在设置为我的应用程序允许openID auth.所以我有这个:

from __init__ import Base
from sqlalchemy.schema import Column
from sqlalchemy.types import Integer, String

class Users(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String, unique=True)
    email = Column(String)
    password = Column(String)
    salt = Column(String)


class OpenID(Base):
    __tablename__ = 'openid'
    url = Column(String, primary_key=True)
    user_id = #?
Run Code Online (Sandbox Code Playgroud)

我认为?应该替换为Column(Integer, ForeignKey('users.id')),但我不确定 - 我是否需要放入openids = relationship("OpenID", backref="users")Users类?为什么?它有什么作用?什么是backref?

python database-design sqlalchemy

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

如何让Emacs自动缩进我的C代码?

我刚刚开始感受到emacs,但是当我按下返回键时,我很沮丧.我知道如果我按下它会做它,但我不能养成这个习惯.我不能.我需要回击,我讨厌每次重新标记.

我进入选项并发现C模式钩子和C++模式钩子等 - 他们定义了两个键映射(10和13,我记得0A和0D是CR/LF,因为我在组装中经常使用它们) - - 我想,因为一个说" (lambda nil (define-key lisp-mode-map [13] (quote newline-and-indent))"和另一个相同,但(quote newline)相反,我只是把 - 并 - 缩进在它的末尾,并认为它会工作.

但事实并非如此:我设置并保存它,尝试过但无济于事.重启emacs,仍然没有成功.如何缩进我的代码呢?非常疯狂的是,emacs需要一个lisp学位才能根据你的基本需求进行配置.

另外,作为一个侧面问题:如何从剪贴板复制和粘贴?Killing/yanking很方便,除了我讨厌每次我想粘贴到其他地方时都要编辑 - >复制.

- 编辑 -

好吧,我把以下几行放到我的.emacs中并且它有效:

(add-hook 'c-mode-common-hook (lambda ()
      (local-set-key (kbd "RET") 'newline-and-indent)))

谢谢您的帮助

emacs

22
推荐指数
4
解决办法
2万
查看次数

在表单发布时,是否会提交禁用的文本字段?

如果我通过POST提交禁用的文本字段,结果值将在操作页面上显示什么?

例如,我有:

<table border=0 cellpadding=4 cellspacing=0>
<tr><td>
   <input type="checkbox" id="chk_$item" 
    onClick="javascript:handleClick('$item')">
</td><td>
   <input type="text" id="txt_$item" name="addresses[]" value="$item">
</td></tr>
<tr><td>
   ...etc...
</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

在handleClick()JavaScript函数检查,如果chk_$item被选中,如果没有,它会禁用txt_$item文本字段.

当我提交它时,所有文本字段都转到addresses[]PHP脚本中的数组.

但是,如果它被禁用,我可以阻止该字段提交任何内容吗?它会默认执行此操作吗?如果没有,我应该如何改变行为?(我真的不想在他们被禁用时清除这些字段).

html javascript forms form-submit

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

如何编写.htaccess文件以使CodeIgniters URL路由工作?

我正在使用CodeIgniter运行LAMP环境.我希望能够使用它的URL模式,比如http://localhost/controller/function/ID,但是默认情况下它必须是http://localhost/index.php/controller/function/ID.用户指南说我需要一个.htaccess文件来使前一种风格成为可能,并以此为例:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

但我不明白这是如何工作的.我应该把.htaccess放在哪里?它必须在服务器根目录中吗?

如果我的服务器上运行了多个站点,该怎么办?我是否必须将其插入/var/www/并根据加载的目录指定条件?或者我可以把它放进去/var/www/site_using_codeigniter/?我不确定如何让这个工作.

如果请求的URL实际上不存在,我是否可以将其设置为仅映射到MVC URL?例如,它http://localhost/articles/2009/some-article-name不是服务器上的目录,因此它将映射到index.php并给予codeigniter,但http://localhost/forum 它将存在于服务器上但不应由codeigniter处理.

我应该用.htaccess文件做的任何其他事情?有什么好看的吗?

更新

我改变了我的配置文件:

$config['index_page'] = ""; //used to be "index.php"
Run Code Online (Sandbox Code Playgroud)

并将其添加到.htaccess文件中:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

并将其保存在我的站点根目录中(在本例中/var/www/cms/)

我进入了/etc/apache2/conf.d/security(由/etc/apache2/apache2.conf包含)并执行了以下操作:

<Directory />
    AllowOverride All #was "none", but this was all commented out
    Order Deny,Allow
    Deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作.如果我导航到http://localhost/cms/index.php/hello,它会打印"Hello there",但http://localhost/cms/hello会出现404错误.

想法? …

.htaccess codeigniter

20
推荐指数
3
解决办法
7万
查看次数

从PHP中的成员函数访问私有变量

我从中派生了一个类Exception,基本上是这样的:

class MyException extends Exception {

    private $_type;

    public function type() {
        return $this->_type; //line 74
    }

    public function __toString() {

        include "sometemplate.php";
        return "";

    }

}
Run Code Online (Sandbox Code Playgroud)

然后,我是MyException这样派生的:

class SpecialException extends MyException {

    private $_type = "superspecial";

}
Run Code Online (Sandbox Code Playgroud)

如果我throw new SpecialException("bla")来自一个函数,捕获它,然后去echo $e,那么该__toString函数应该加载一个模板,显示它,然后实际上不返回任何回显.

这基本上就是模板文件中的内容

<div class="<?php echo $this->type(); ?>class">

    <p> <?php echo $this->message; ?> </p>

</div>
Run Code Online (Sandbox Code Playgroud)

在我看来,这绝对有用.但是,当抛出异常并尝试显示它时,我收到以下错误:

致命错误:无法访问第74行的C:\ path\to\exceptions.php中的私有属性SpecialException :: $ _ type

任何人都可以解释为什么我违反规则吗?我用这段代码做了一些非常机智的事吗?有没有更惯用的方法来处理这种情况?$_type变量的点是(如图所示)我希望根据捕获的异常类型使用不同的div类.

php oop exception

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