不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2016-07-31 14:49  分类:Linux_C  编辑

首先给出《The_C_Programming_Language》这本书中的例子:

#include <stdio.h>

int main()
{
	int c;
	c = getchar();
	while (c != EOF)
	{
		putchar();
		c = getchar();
	}

	return 0;
}

这里主要解释下为什么要用int型来接受getchar函数。

作者:php-note.com  发布于:2016-07-31 14:47  分类:Linux_C  编辑

popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除了fclose()以外。

作者:php-note.com  发布于:2016-07-28 14:44  分类:Linux软件安装/优化  编辑

1、修改配置

sudo vim /etc/default/grub

把 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"

然后保存。

作者:php-note.com  发布于:2016-07-26 14:42  分类:Linux软件安装/优化  编辑

在做系统后台的时候,往往会有导出系统信息(如,用户信息)功能,一般导出为CSV文件。

先前在 Windows 下,导出的CSV文件用 Excel 打开能正常显示,可现在在 Mac 系统中,显示一团乱,如下图所示:

作者:php-note.com  发布于:2016-07-25 14:41  分类:HTML/CSS/JS  编辑

最近在做手机端的 h5 页面的视频直播功能,用到了 Video 标签。其常用的属性有以下几个:

src、poster、preload、autoplay、loop、controls、width、height等属性。

 

1、src属性 和 poster属性

跟<img>标签的一样,这个属性用于指定视频的地址,而poster属性用于指定一张图片,在当前视频数据无效时显示,可当作一张 预览图。视频数据无效可能是视频正在加载,可能是视频地址错误等等。

<video width="658" height="444" src="http://www.youname.com/images/123456.mp4" poster="http://www.youname.com/images/123456.png" autoplay="autoplay"></video>
作者:php-note.com  发布于:2016-07-19 14:22  分类:Linux_C  编辑

 一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

作者:php-note.com  发布于:2016-07-19 14:21  分类:系统设计/架构  编辑

如题:如何设计业务模块返回结果的结构?

一个业务函数/方法执行后,对外输出数据的结构通常有以下几种:

1、返回数字,如 成功时返回 0,失败时返回 -1,有的还会用一个全局变量输出错误信息:

<?php
class UserLogic extends \Think\Model {
	protected $error;

	/**
	 * 更改用户名称
	 *
	 * @param int    $userId   用户ID
	 * @param string $userName 用户名
	 * @return int -1: 操作失败, 0: 操作成功
	 */
	public function updateUserName($userId = 0, $userName = '') {
		if (empty($userId)) {
			$this->error = '用户ID不能为空';
			return -1;
		}

		if (empty($userName)) {
			$this->error = '用户名不能为空';
			return -1;
		}

		$where = array(
			'userId' => $userId
		);

		$data = array(
			'userName' => $userName
		);

		$res = $this->where($where)->save($data);
		if ($res !== false) {
			return 0;
		}

		return -1;
	}
}
作者:php-note.com  发布于:2016-07-19 14:20  分类:Linux基础  编辑

某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: 

  • which  查看可执行文件的位置
  • whereis 查看文件的位置
  • locate   配合数据库查看文件位置
  • find   实际搜寻硬盘查询文件名称
作者:php-note.com  发布于:2016-07-19 14:16  分类:PHP基础  编辑

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

/**
 * 数组 转 对象
 *
 * @param array $arr 数组
 * @return object
 */
function array_to_object($arr) {
	if (gettype($arr) != 'array') {
		return;
	}
	foreach ($arr as $k => $v) {
		if (gettype($v) == 'array' || getType($v) == 'object') {
			$arr[$k] = (object)array_to_object($v);
		}
	}

	return (object)$arr;
}

/**
 * 对象 转 数组
 *
 * @param object $obj 对象
 * @return array
 */
function object_to_array($obj) {
	$obj = (array)$obj;
	foreach ($obj as $k => $v) {
		if (gettype($v) == 'resource') {
			return;
		}
		if (gettype($v) == 'object' || gettype($v) == 'array') {
			$obj[$k] = (array)object_to_array($v);
		}
	}

	return $obj;
}
作者:php-note.com  发布于:2016-07-19 14:15  分类:Linux软件安装/优化  编辑

所有的用户都属于 staff 组,

只有具有管理员性质的用户位于 wheel 组中。

wheel 是一个特殊的用户组,该组的用户可以使用 su 切换到 root,而 staff 组是所有普通用户的集合。

作者:php-note.com  发布于:2016-07-19 14:12  分类:电脑/软件使用  编辑

在重装系统之前都想要对 Chrome 中的数据进行备份,以能够在重装系统后恢复这些数据。但是除了一些玩 Chrome 很长时间的用户,鲜有人知道 Chrome 的用户数据到底保存在什么地方。如果你也有这样的需求,不妨记下下面的这些路径:

  • Mac OS X: ~/Library/Application Support/Google/Chrome/Default
  • Windows XP: Documents and SettingsusernameLocal SettingsApplication DataGoogleChromeUser DataDefault
  • Windows 7: C:\Users\jianbao\AppData\Local\Google\Chrome\User Data\Default\
  • Linux: ~/.config/google-chrome/Default
作者:php-note.com  发布于:2016-07-19 14:11  分类:Linux软件安装/优化  编辑

1、常用的几个操作:

(1)、视图 -> 功能区
(2)、视图 -> 打印版式
(3)、视图 -> 大纲
(4)、视图 -> 侧栏 -> 文档结构图窗格

作者:php-note.com  发布于:2016-07-19 14:10  分类:Linux_C  编辑

操作系统:Mac OS X 10.11.5

1、下载书中的源代码:点击下载

2、切换到解压后的目录 unpv13e,先查看下 README,依次执行:

./configure

cd lib
make

cd ../libfree
make
作者:php-note.com  发布于:2016-07-19 14:09  分类:杂七杂八  编辑

Chrome开发者工具

Elements(元素)、Network(网络)、Sources(源代码:调试JS的地方)、Timeline(时间线)、Profiles(性能分析)、Resources(资源:查看Cookie的地方)、Audits(审查)、Console(控制台) 

作者:php-note.com  发布于:2016-07-19 14:08  分类:Linux软件安装/优化  编辑

1、先安装 brew,参考文章:Mac Pro 安装 Homebrew 软件包管理工具

2、执行安装命令

brew install cmake

出现警告提示:

Warning: cmake-3.5.2 already installed, it's just not linked

作者:php-note.com  发布于:2016-07-19 14:06  分类:Linux_C  编辑

“一切皆Socket!”

话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。

——有感于实际编程和开源项目研究。

作者:php-note.com  发布于:2016-07-19 14:05  分类:Linux基础  编辑

1、Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样。

2、它们是用来完成特定任务的,比如nobody和ftp等,我们访问 www.php-note.com 的网页程序时,官网的服务器就是让客户以 nobody 身份登录的(相当于Windows系统中的匿名帐户);我们匿名访问ftp时,会用到用户ftp或nobody。

作者:php-note.com  发布于:2016-07-19 14:04  分类:Linux基础  编辑

Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。

作者:php-note.com  发布于:2016-07-19 14:03  分类:Linux软件安装/优化  编辑

在Mac下安装好了PHP开发环境(PHP-FPM,Nginx,MySql), 想设置成开机自启动,原来以为和一般的Linux系统一样,也是在rc.d这样目录放置启动脚本。在网上查了一些资料,发现苹果应该是把它完全封闭了,只能利用Mac系统里的Launchctl来做这个事。

作者:php-note.com  发布于:2016-07-19 14:02  分类:Linux_C  编辑

要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。