タグ

ブックマーク / zenn.dev/kaityo256 (2)

  • WSLでopenコマンドを用意する

    function open() { if [ $# != 1 ]; then explorer.exe . else if [ -e $1 ]; then cmd.exe /c start $(wslpath -w $1) 2> /dev/null else echo "open: $1 : No such file or directory" fi fi } zshでしか試していないが、たぶんbashでも似たような感じでいけると思う。 エクスプローラによるopen Macのターミナルでは、open filenameとすると、そのファイルを関連付けられたアプリで開くことができる。また、open .などとするとFinderでカレントディレクトリが開いて便利だ。 WindowsのWSLで似たようなことがしたくて、

    WSLでopenコマンドを用意する
  • 実行結果がリンクの順番に依存するコード

    はじめに 以前リンカのお仕事という記事を書きました。関数やグローバル変数のアドレスは、コンパイル時にはとりあえずラベルとして定義され、そのアドレスはリンク時にリンカが決めます。その際、リンクの順番によりアドレスが変わります。その結果、リンクの順番により実行結果が変わるようなコードが書けます。それについてちょっとだけ説明しようと思います。 グローバル変数 関数の外で宣言された変数はグローバル変数となります。何も指定しなければ、それはグローバルシンボルとなり、別のファイルからもアクセスできます。コンパイラに「実体が別のオブジェクトファイルにあるよ」と教えるにはextern宣言を使います。 main.cpp #include <cstdio> extern int a, b; int main() { printf("a: %p\n", &a); printf("b: %p\n", &b); }

    実行結果がリンクの順番に依存するコード
  • 1