概要 メモリ操作に関するシステムコールを利用した C 言語のサンプルコードを記載します。 ページサイズの確認 (getpagesize) OS はメモリを複数のページに分割して管理しています。一つのページのサイズは以下のコマンドで確認できます。通常は 4kb です。 getconf PAGESIZE 4096
概要 Linux の標準機能として提供されている logrotate コマンドを利用すると、設定ファイルに記載された条件にしたがって特定のログファイルをリネームしたり古すぎるものを削除したりすることができます。これによってログファイルが肥大化してディスクの容量を圧迫することを回避できます。実用上 logrotate コマンド自体は直接的には実行しません。cron に設定されたシェルスクリプト内で
概要 istream : オブジェクトは cin ostream : オブジェクトは cout, cerr(エラー出力。バッファリングしない), clog(ログ出力。バッファリングする) iostream : istream と ostream の派生クラス (多重継承) fstream : iostream の派生クラス
概要 GitLab CI/CD について使い方を把握してみます。 検証用 GitLab の準備 簡単のため docker イメージを利用します。マウントしたディレクトリは、Docker エントリーポイントから実行される Chef によってプロビジョニングされます。 docker run \ --hostname localhost \ --publish 10443:443 --publis
コネクションプール データベースにアクセスするときに必要なコネクションを確立するためにはある程度の時間がかかります。そこで、一度確立したコネクションは解放せずに一定数プールしておいて次回のアクセス時に使い回すことを考えます。このコネクションプールという仕組みをクライアント側で実装することで、コネクションをプールしておくためのメモリなどは別途必要にはなりますが、アクセスのためのコネクション確立処理
基本 defステートメントを用いて定義します。 sample.py #!/usr/bin/python # -*- coding: utf-8 -*- def rec(x): return 1 if x==0 else x*rec(x-1) for (i,x) in enumerate(range(7)): print "%d!=%d" % (i,rec(x))
サンプルコード #include <iostream> #include <cstdarg> #include <cstdio> // vprintf, vsprintf using namespace std; void MyFunc(int first, ...) { va_list args; // 入れ物を確保 va_start(args, first); // 入れ物の
概要 シェル変数はすべて文字列扱いであるため、数値計算のためには専用のコマンドを用いる必要があります。 整数同士の計算 整数同士の四則演算にはexprコマンドを使用します。 sample.sh #!/bin/sh expr 1 + 1 expr 1 - 1 expr 1 '*' 1 # ワイルドカードと区別するために、クォーテーションで囲う必要があります expr 1 / 1 expr 1
概要 ROS による開発で必要となる 3D モデルは STL や COLLADA データとして作成できます。FreeCAD と Blender を用いて直方体のデータを作成してみます。いずれの場合も、ROS 等で扱うために単位はメートルで出力します。 FreeCAD による直方体 STL の作成 STL はフェイスに三角形を利用した 3D モデル
概要 cv::Canny などで検出したエッジをもとに cv::findContours で輪郭を計算できます。輪郭に関連した処理の例を記載します。 輪郭の描画 #include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat src = cv::imread("aaa.png", cv::IMREAD_