タグ

プログラムと裏技に関するiwwのブックマーク (7)

  • チャットツールでコードを壊さない送信方法 - Qiita

    多くのチャットツールにはメッセージ文中に特定のパターンに合致する並びで記号を入れることにより、 記号が消えて書式設定が適用されるようになっている。 特定の記号で文字を挟むと「太文字」「斜体」「取り消し線」のような書式が適用される 特定の記号の並びで絵文字に変化する このため、チャットのメッセージにプログラムのソースコードをそのまま貼り付けて送ろうとすると、 一部の記号が消えてしまい、コードが正しく動かなくなってしまうことがある。 また、チャットツール以外でも、以下のような方法でコードをやり取りすると勝手に一部の文字が大文字や全角文字に化けたり、謎の空白や改行が入り込むことがあるので同様にオススメできない。 Eメール文に貼り付けて送信 PDFファイルに保存して送信 Wordファイルに保存して送信 一番無難なのは以下の2つ。 テキストファイルにコードを保存してやり取り Gistのようなソース

    チャットツールでコードを壊さない送信方法 - Qiita
    iww
    iww 2024/02/13
    ソースコードを貼り付けるとき 先頭行を !! にすると等幅になって顔文字とか使われなくなる。助かる
  • C言語でconstなオブジェクトが書き換えられることがある話

    先に注意事項ですが、今回の話はC言語ソースのコンパイル結果、つまり「処理系での実現方法」の話であって、C言語そのものの決まりではありません。 ※C言語としての話と、コンパイル後のバイナリレベルの話を混同する人が山のようにいるので念のため angel (as ㌵㌤の) @angel_p_57 なんかふと思い立ってC言語コードのコンパイル結果を見てみたんだけど、不思議に思ったことが。 const修飾したオブジェクトって実質読み取り専用だから、メモリ上に置かれるとしたら rodata 等の書き込み不可領域になるんだけど。ところが auto変数 ( 要はレキシカルな変数 ) はそうならないようだ。 2023-07-29 21:12:41 angel (as ㌵㌤の) @angel_p_57 例えば static const char str[] = "…"; としてstaticなconst文字

    C言語でconstなオブジェクトが書き換えられることがある話
  • C でヒアドキュメントごっこ

    C 言語 マクロ講座 # ## 編に触発されて、もうすこし悪戯を。(例によってcygwin+gcc) htmlでは、” (ダブルクォート)が多用されているので、cgiプログラムでは、文字列として定義するときにエスケープする必要があり面倒です。<h1 id=”title”>hello</h1> は、”<h1 id=\”title\”>hello</h1>” として定義しなければなりません。このおかげで、Starbug1のソースは大変なことになってます。普通ならテンプレートエンジン書け!ってことになるんでしょうが、Starbug1の性質上余分なことはしたくないので、現在htmlをエスケープしながら直書きしてます。 プリプロセッサで処理する方式で、エスケープせずにhtmlを記述できるようになると非常に嬉しいので、# を使ってヒアドキュメント風なものを試してみました。最初試したのは、↓のような感じ

    iww
    iww 2023/02/18
    実用はさておき面白い
  • バッチファイルを管理者権限で実行する方法 【UAC有効、パスワード問い合わせなし】 | 某氏の猫空

    バッチファイルを管理者権限で実行する方法 【UAC有効、パスワード問い合わせなし】投稿 : 2012-04-12更新 : 2013-05-11 想定されること・バッチファイルを管理者権限で実行したい ・バッチファイルの中で管理者権限の必要なプログラムを呼び出したい ・runas で実行するとパスワード入力が必要なので困る ・UAC有効で運用したい ・UAC昇格確認が出てほしくない 上記のような感じのことを実現する方法。 動作は、Windows7で確認しました タスクスケジューラを使う方法 上記の要望をすべて満たすためには、タスクスケジューラを使う以外にはないと思われます。 イメージ的には、管理者権限の必要なバッチファイルやプログラムの起動をタスクスケジューラ経由で行うという感じになります。実際やってみれば、それほど手間がかからないことが分かると思います。 タスクスケジューラで、タスクを事前

    バッチファイルを管理者権限で実行する方法 【UAC有効、パスワード問い合わせなし】 | 某氏の猫空
  • main() の前に関数を呼ぶ - bkブログ

    main() の前に関数を呼ぶ C/C++ のプログラムで、main() の前に関数を暗黙的に呼びたいときがあります。ここでは GCC の拡張を使った方法と、C++ のコンストラクタを使った方法を紹介したいと思います。 GCC では main() の前に呼ばれる関数を __attribute__((constructor)) という拡張機能を使って定義できます。たとえば、次のプログラムでは main() の前に foo() が呼び出されます。 #include <stdio.h> __attribute__((constructor)) void foo() { printf("hello, before main\n"); } int main (int argc, char **argv) { printf("hello, world\n"); return 0; } 実行結果は以下の

  • Error Not Found. Mr.インクルード

    518 :名前は開発中のものです。:2010/08/29(日) 22:47:44 ID:9rTjBNB+ #include "Hoge.cpp" こんな事できるんだ 519 :名前は開発中のものです。:2010/08/29(日) 23:02:09 ID:m5UOgFEg >>518 単にファイルの中身を挿入してるだけだからね。 #include "hoge.txt" でもおkよ。 CSVとかデータを豪快にいれたこともあったなこんなして、 int aa[] = { #include "hoge.csv" }; 520 :名前は開発中のものです。:2010/08/30(月) 03:50:37 ID:9bcjBgda >>519 言われてみれば確かにできるんだけど なかなか実際にはその発想に至らない・・ 521 :名前は開発中のものです。:2010/08/30(月) 09:57:59 ID:81

  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御

    第10章 著名な脆弱性対策 バッファオーバーフロー: #5 運用環境における防御 近年、オペレーティングシステムには、バッファオーバーフロー等の攻撃を失敗に終わらせるためのいくつかの防御機能が備わりつつある。それは、主に次の3つである スタック保護 関数リターンアドレス書き変えを検出し、それ以上の実行を止める メモリ空間レイアウトのランダマイズ メモリ上の特定の位置を狙ってのアドレスワードの不正書き変えや、侵害コードへのジャンプといった操作を失敗させる データ実行防止 万一侵害コードへのジャンプが行われたとしてもデータ領域に置かれた機械語コードを実行させない スタック保護 近年Cコンパイラも進歩し、関数をコンパイルして生成される機械語コードの中に、領域あふれによってスタック上の関数リターンアドレスが改変されていることを検知する機械語コードを挿入できるものが登場している。 その主なものが、G

    iww
    iww 2010/08/02
    カナリアの飼い方。-fstack-protector-all
  • 1