03 2008 档案

摘要:mkdir和rmdir我们可以使用mkdir和rmdir来创建和移除目录.其语法如下:#include <sys/stat.h>int mkdir(const char *path, mode_t mode);mkdir系统调用可以用来创建目录,而这是与mkdir程序相等同的.mkdir以path为名字创建一个新的目录.目录的权限是由参数mode来指定的,而这也与open系统调用中的O_CREAT的选项是一样的,而且这也是要受到umask的影响.rmdir语法如下:#include <unistd.h>int rmdir(const char *path);rmdir系 阅读全文
posted @ 2008-03-28 09:15 jlins 阅读(381) 评论(0) 推荐(0) 编辑
摘要:标准I/O库标准I/O库以及他的头文件,提供了一个到底层I/O系统调用的一个万能接口.这个库并不是ANSI标准C的一部分,而我们在前面所谈到的系统调用也不是,但是这个库却提供了许多复杂的函数用来处理格式化输出以及描述输入.他同时也会小心的处理设备所要求的缓冲区.在许多方式上,我们可以用使用低层文件描述符的方式来使用这个库.我们需要打开文件建立访问路径.这会返回一个值,并会作为一个调用其他I/O库函数的参数.这个与低层文件描述符等同的被称之类流(stream),并且是作为一个指向结构的指针,FILE*,来实现的.当一个程序启动时会自动打开三个文件流.他们是stdin,stdout,stderr. 阅读全文
posted @ 2008-03-23 08:39 jlins 阅读(291) 评论(0) 推荐(0) 编辑
摘要:使用文件在这一部分当中,我们将会讨论Linux的文件以及目录以及如何来管理他们.我们将会学习创建文件,打开文件,读取文件,写入文件以及关闭文件.我们也将会学习程序如何来管理目录(例如创建,扫描,删除).在上一部分当中我们使用Shell进行编程,而现在我们要开始使用C编程.在讨论Linux处理文件I/O之前,我们将会看一些与文件,目录以及设备相关的概念.要处理文件与目录,我们需要使用系统调用(与Windows API相类似的Unix/Linux调用),但是也存在着一系列的库函数,标准I/O库(stdio),来使得我们的文件处理更为有效.在这里我们要将讨论处理文件和目录的各种调用,所以我们将会谈到 阅读全文
posted @ 2008-03-22 09:05 jlins 阅读(245) 评论(0) 推荐(0) 编辑
摘要:通过昨天对已知技术的回顾,我们已经熟悉交互的使用。显示丰富格式的问题与列表,甚至是分页,并不足以使一个程序鲜活。而askeet概念的核心就是允许任何注册的用户询问一个新问题,而任何用户可以回答已存在的问题。现在是我们实现的时候了。添加一个新问题我们在第七天所创建的侧边栏已经包含一个添加新问题的链接。他链接到question/add动作,这正是我们将要开发的。限制到注册用户的访问首先,只有注册用户可以添加一个新问题。为了限制到question/add动作的访问,在askeet/apps/frontend/modules/question/config/目录下创建一个security.yml文件: 阅读全文
posted @ 2008-03-20 17:18 jlins 阅读(1429) 评论(0) 推荐(0) 编辑
摘要:回顾在我们第八天的学习中,我们很容易的为askeet添加了AJAX交互。现在程序已经相当有用了,但是还需要大量的小修改。在问题体中应允许丰富的文本,而主键不应出现在URI中。在Symfony中修正这些问题并不难,今天将是我们练习我们所学东西的一个好机会,并且可以检测我们是否已经知道如何操作MVC结构的所有层。在question与answer上允许丰富的文本格式Markdownquestion与answer现在只允许接受普通文本。要允许基本的格式,粗体,斜体,超链接,图片,等,我们将会使用一个外部库,而不是重新发明轮子。如果我们阅读过文本格式的Symfony文档,那么你也许知道我们是Markdo 阅读全文
posted @ 2008-03-16 10:03 jlins 阅读(383) 评论(0) 推荐(0) 编辑
摘要:Symfony回顾在七个小时的工作之后,askeet程序已经很好了。主页显示问题列表,问题的详细内容显示其答案,用户具有一个配置页面,而各种主题列表也可以由每一页的侧边栏访问。我们社区加强的FAQ处在其正确的方向上,而现在用户还不可以修改数据。如果web中数据操作的基础是长长的表单,那么今天的AJAX技术可以改变程序的构建方式。而这也同样适用于askeet。在这个指南中,我们将会显示在askeet中添加加强的AJAX交互。其目标就是允许一个已注册的用户声明其对某一个问题的兴趣。在布局中添加一个指示器当一个异步请求发送时,AJAX网站的用户并不需要考虑通常的动作暂停,而结果会很快显示。这就是所有 阅读全文
posted @ 2008-03-15 09:16 jlins 阅读(305) 评论(0) 推荐(0) 编辑
摘要:Symfony回顾现在我们的学习已经过去六天了,也许我们其中的一些人会认为到现在为止程序并不是十分的有用。这是因为一些人是通过可用的页面数量来评价一个程序是否有用的,而他们认为askeet只是显示一个问题列表,显示相关的答案以及处理用户会话。我们并没有添加大量页面的原因是因为使用Symfony添加页面实在是太容易了。我们需要证明?好的。今天我们将会显示一个最后提问的问题列表,一个最后发表的答案列表,一个对某一个问题感兴趣的用户列表,用户的配置,并且我们会在每一个页面上添加一个浏览栏来访问这些特性。因为这些工作并不够一小时,我们同时会进行视图配置,并且会最终查看一下我们这周所完成的工作。准备好了 阅读全文
posted @ 2008-03-11 16:31 jlins 阅读(253) 评论(0) 推荐(0) 编辑
摘要:回顾在我们第五天的学习中,我们已经习惯于操作模板与动作:表单与分页对于我们而言已不在神秘。但是在构建登陆表单之后,我们也许希望演示一下如何限制非授权用户对特定功能的访问。这就是我们今天所要学习的内容,以及一些表单验证的内容。因为我们要使用自定义的类来扩展程序,所以我们会对Symfony一书的自定义扩展一节的内容有更深的理解。登陆表单验证验证规则登陆表单有一个nickname与password域。但是如果用户提交了不正确的数据时会发生什么情况呢?为了能够处理这种情况,在/frontend/modules/user/validate目录下(login是要验证的动作名)创建一个login.yml文件 阅读全文
posted @ 2008-03-08 15:54 jlins 阅读(409) 评论(0) 推荐(0) 编辑
摘要:回顾在我们第四天的学习中,我们通过将代码段移到与其作用更为相关的文件中来对我们的程序进行重构。我们同时也学习了修改模块,这样与数据相关的通常方法可以在动作代码之外运行。开发很简洁,但是功能的数量仍然很缺乏。现在是时候进行一些askeet站点与用户之间的交互了。而HTML交互的根本--除了起链接--就是表单了。今天我们的目标是允许用户登陆,并在主页的问题列表中进行翻阅。这对于开发而言是很快的,但是这会让我们回忆起昨天的内容。登陆表单在测试数据中存在用户,但是程序却没有办法来进行验证。下面我们要在程序的每一个页面添加一个登陆表单。打开全局的布局文件askeet/apps/frontend/temp 阅读全文
posted @ 2008-03-02 08:37 jlins 阅读(382) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示