タグ

Programmingとexecに関するItisangoのブックマーク (2)

  • 【Python】文字列をプログラムとして実行する(exec,eval,getattr,literal_eval)  | 初心者DIYプログラミング入門

    今回は、文字列の中に記載されたメソッドや関数を Python から実行する方法です。 exec、eval、 literal_eval 、getattr あたりを使うことで実現可能なのですが、呼び出し側(文字列を関数として呼び出す側)と呼び出された側(文字列に記述した式)での値の受け渡しなどは、他のサイトではあまり触れられていないので、この記事ではその点を中心に解説したいと思います。 「文字列をプログラムとして実行する」とは そもそも「文字列をプログラムとして実行する」というのは、例えば文字列として "myfunc(100)" という文字列が与えられた場合、「 myfunc(100) を実行する」と解釈して、myfunc(100)を実行するという事になります。 プログラムと言っても実際には関数に限ったものではなく、文字列をPythonのプログラムと解釈させて実行することが可能です。 文字列を

    【Python】文字列をプログラムとして実行する(exec,eval,getattr,literal_eval)  | 初心者DIYプログラミング入門
    Itisango
    Itisango 2022/02/10
    「2 文字列をプログラムとして実行する exec 関数/3 1つの文を実行して結果を返すeval関数/4 文字列からリストや辞書を生成して返す literal_eval 関数/5 メソッド名の文字列でクラスのメソッドを呼ぶ getattr 関数」
  • Android NDKでfork, execは使ってはダメ - 組み込みの人。

    Android NDKでfork, execのシステムコールは使ってはダメという話。 Google グループ NDKの中でforkとexecを使って子プロセスを起動してデーモン的なプログラムを動かした。しばらくうまく動いていたけど、突然SEGVで落ちて、クラッシュダンプもログに出てないので原因がわからない。なんで? という質問。 fork, execはNDKのヘッダファイルに含まれているけど、それらはシステム用であり、アプリケーションから使ったときの振る舞いは保障できない。将来それを保障することもない。(さらに言えば、ある日fork, execをアプリケーションから使用することを禁止するかも。) バックグランドで長期間動くプログラムはandroid.app.Serviceを使うのが正しい方法。 今までのAndroidの内部構造に関する知識でこれを補足すると、 Androidのアプリケーショ

    Android NDKでfork, execは使ってはダメ - 組み込みの人。
    Itisango
    Itisango 2011/06/05
    LinuxのようでLinuxじゃない、ベンベン!
  • 1